<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>قصاصات تقنية</title>
	<atom:link href="http://www.tech-scraps.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tech-scraps.com</link>
	<description>تحليلات لأنظمة التشغيل والشبكات الاجتماعية</description>
	<lastBuildDate>Sat, 19 May 2012 00:27:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>سلسلة تعلم الأندرويد &#8211; الحلقة التاسعة: الواجهة الرسومية القائمة</title>
		<link>http://www.tech-scraps.com/2012/05/listview-android/</link>
		<comments>http://www.tech-scraps.com/2012/05/listview-android/#comments</comments>
		<pubDate>Sat, 19 May 2012 00:25:46 +0000</pubDate>
		<dc:creator>عبد القهار الحسني</dc:creator>
				<category><![CDATA[أندرويد]]></category>
		<category><![CDATA[دروس وشروحات]]></category>

		<guid isPermaLink="false">http://www.tech-scraps.com/?p=686</guid>
		<description><![CDATA[السلام عليكم
في الحلقة السابقة قمت بشرح الواجهات الرسومية الأساسية في الأندرويد أو الأطر الرسومية وفي هذه الحلقة سوف أقوم بشرح واجهة القائمة ListView وكيفية استعمالها. والسبب الذي جعلني أفرد حلقة خاصة لهذه الواجهة هو كثرة تطبيقاتها واستعمالتها في مختلف تطبيقات الأندرويد. تستعمل هذه الواجهة عادة عند عرض مجموعة معلومات قصيرة وكثيرة العدد مثل جهات الاتصال، الرسال النصية وغيرها. وقد استعملت هذه الواجهة في تطبيق iAndroidQuran لعرض أسماء السور والآيات أيضاً. [...]]]></description>
			<content:encoded><![CDATA[<p style="direction: rtl;">السلام عليكم</p>
<p style="direction: rtl;">في الحلقة السابقة قمت بشرح الواجهات الرسومية الأساسية في الأندرويد أو الأطر الرسومية وفي هذه الحلقة سوف أقوم بشرح واجهة القائمة ListView وكيفية استعمالها. والسبب الذي جعلني أفرد حلقة خاصة لهذه الواجهة هو كثرة تطبيقاتها واستعمالتها في مختلف تطبيقات الأندرويد. تستعمل هذه الواجهة عادة عند عرض مجموعة معلومات قصيرة وكثيرة العدد مثل جهات الاتصال، الرسال النصية وغيرها. وقد استعملت هذه الواجهة في تطبيق iAndroidQuran لعرض أسماء السور والآيات أيضاً. يمكن تزويد القائمة بالمعلومات من خلال محوّل Adapter يستعمل مصفوفة أو قواعد البيانات، ويوجد في الأندرويد العديد من كلاسات المحوّلات Adapter التي تقوم بربط الواجهة بالمعلومات. هناك عادة طريقتان لاستعمال هذه الكلاسات، إما على طريقة Object وهي أن تستعمل الكلاس مباشرة باستعمال الدالة المشيِّدة Constructor Function أو أن تقوم بعمل كلاس فرعي من أي من الكلاسات الخاصة بهذا الأمر.</p>
<p style="direction: rtl;">لعرض واجهة القائمة هناك خياران، إما أن نقوم باستعمال كلاس Activity أو كلاس ListActivity. فما الفرق بينهما:</p>
<ul>
<li style="direction: rtl;">كلاس Activity يمكن أن يحتوي واجهة القائمة مع واجهات رسومية أخرى كالواجهة النصية، أما كلاس ListActivity فهو يقوم بعرض القائمة على كافة الشاشة فتكون هي الواجهة الوحيدة المعروضة.</li>
<li style="direction: rtl;">كلاس Activity يكون عاماً على عكس كلاس ListActivity الذي يكون خاصاً لواجهة القائمة ويكون أيضاً مجهز ببعض الدوال التي تساعد على عملية التحكم بالقائمة بشكل أسلس.</li>
<li style="direction: rtl;">كلاس ListActivity هو كلاس متفرع من كلاس Activity فيمكن استعمال الدوال الخاصة بالإثنين عند استعماله.</li>
</ul>
<p style="direction: rtl;">في هذه الحلقة سوف أقوم بشرح كيفية بناء القائمة باستعمال كلاس ListActivity مع استعمال كلاس محوّل Adapter على الطريقة الأولى المذكورة بالأعلى حيث أنها الأبسط والأكثر انتشاراً، وإن شاء الله سوف أقوم بشرح الطريقة الأخرى في الدرس القادم. النتيجة النهائية للقائمة سوف تكون بهذا الشكل:</p>
<p style="direction: rtl; text-align: center;"><a href="http://www.tech-scraps.com/wp-content/uploads/2012/05/listview-final-example.png"><img class="aligncenter  wp-image-733" title="listview-final-example" src="http://www.tech-scraps.com/wp-content/uploads/2012/05/listview-final-example.png" alt="android list view" width="288" height="457" /></a><br />
في البداية نقوم بصنع الواجهة النصية الخاصة لكل صف في القائمة (قم بحفظ الواجهة في ملف وسمّه list_item.xml):</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;TextView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
 android:layout_width=&quot;fill_parent&quot;
 android:layout_height=&quot;fill_parent&quot;
 android:padding=&quot;10dp&quot;
 android:textSize=&quot;16sp&quot; &gt;
&lt;/TextView&gt;
</pre>
<p>هذه الواجهة سوف تكون المسؤولة عن عرض كل صف في القائمة، وهذا لتسهيل عملية تحديث القائمة حيث يمكن التعديل على هذه الواجهة ليتم تغيير جميع الصفوف الموجودة في القائمة.</p>
<p>ثم نقوم بإنشاء المصفوفة التي تحتوي على المعلومات التي سوف يتم عرضها في القائمة:</p>
<pre class="brush: java; title: ; notranslate">
 static final String[] COUNTRIES = new String[] {
&quot;أفغانستان&quot;, &quot;ألبانيا&quot;, &quot;الجزائر&quot;, &quot;ساموا الأمريكية&quot;,
&quot;أندورا&quot;, &quot;أنغولا&quot;, &quot;أنجويلا&quot;, &quot;أنتاركتيكا&quot;, &quot;انتيغوا وبربودا&quot;,
&quot;الأرجنتين&quot;, &quot;أرمينيا&quot;, &quot;اروبا&quot;, &quot;استراليا&quot;, &quot;النمسا&quot;, &quot;أذربيجان&quot;,
 &quot;جزر البهاما&quot;, &quot;البحرين&quot;, &quot;بنجلاديش&quot;, &quot;باربادوس&quot;, &quot;روسيا البيضاء&quot;,
 &quot;بلجيكا&quot;, &quot;بليز&quot;, &quot;بنين&quot;, &quot;برمودا&quot;, &quot;بوتان&quot;, &quot;بوليفيا&quot;, &quot;البوسنة والهرسك&quot;,
 &quot;بوتسوانا&quot;, &quot;جزيرة بوفيت&quot;, &quot;البرازيل&quot;, &quot;إقليم المحيط الهندي البريطاني&quot;, &quot;بروناي دار السلام&quot;,
 &quot;بلغاريا&quot;, &quot;بوركينا فاسو&quot;, &quot;بوروندي&quot;, &quot;كمبوديا&quot;, &quot;الكاميرون&quot;, &quot;كندا&quot;,
 &quot;الرأس الأخضر&quot;, &quot;جزر كايمان&quot;, &quot;جمهورية افريقيا الوسطى&quot;, &quot;تشاد&quot;, &quot;تشيلي&quot;,
 &quot;الصين&quot;, &quot;جزيرة كريسماس&quot;, &quot;كوكوس (كيلنغ)&quot;, &quot;كولومبيا&quot;, &quot;جزر القمر&quot;, &quot;الكونغو&quot;,
 &quot;الكونغو, وجمهورية الكونغو الديمقراطية&quot;, &quot;جزر كوك&quot;, &quot;كوستاريكا&quot;, &quot;ساحل العاج&quot;,
 &quot;كرواتيا (الاسم المحلي: هرفاتسكا)&quot;, &quot;كوبا&quot;, &quot;قبرص&quot;, &quot;جمهورية التشيك&quot;, &quot;الدنمارك&quot;,
 &quot;جيبوتي&quot;, &quot;دومينيكا&quot;, &quot;جمهورية الدومينيكان&quot;, &quot;تيمور الشرقية&quot;, &quot;الاكوادور&quot;, &quot;مصر&quot;,
 &quot;السلفادور&quot;, &quot;غينيا الاستوائية&quot;, &quot;اريتريا&quot;, &quot;استونيا&quot;, &quot;اثيوبيا&quot;, &quot;جزر فوكلاند (مالفيناس)&quot;,
 &quot;جزر فارو&quot;, &quot;فيجي&quot;, &quot;فنل ندا&quot;, &quot;فرنسا&quot;, &quot;فرنسا, متروبوليتان&quot;, &quot;جيانا الفرنسية&quot;,
 &quot;بولينيزيا الفرنسية&quot;, &quot;الأقاليم الجنوبية الفرنسية&quot;, &quot;الجابون&quot;, &quot;غامبيا&quot;, &quot;جورجيا&quot;, &quot;المانيا&quot;,
 &quot;غانا&quot;, &quot;جبل طارق&quot;, &quot;اليونان&quot;, &quot;غرينلاند&quot;, &quot;غرينادا&quot;, &quot;جوادلوب&quot;, &quot;غوام&quot;,
 &quot;غواتيمالا&quot;, &quot;غينيا&quot;, &quot;غينيا بيساو&quot;, &quot;المملكة المتحدة&quot;, &quot;الولايات المتحدة&quot;, &quot;غيانا&quot;, &quot;هايتي&quot;,
 &quot;وسمع وماك دونالد جزر&quot;, &quot;الكرسي الرسولي (دولة الفاتيكان)&quot;, &quot;هندوراس&quot;, &quot;هونج كونج&quot;, &quot;المجر&quot;,
 &quot;أيسلندا&quot;, &quot;الهند&quot;, &quot;اندونيسيا&quot;, &quot;إيران (جمهورية الإسلامية)&quot;, &quot;العراق&quot;, &quot;ايرلندا&quot;,
 &quot;ايطاليا&quot;, &quot;جامايكا&quot;, &quot;اليابان&quot;, &quot;الاردن&quot;, &quot;كازاخستان&quot;, &quot;كينيا&quot;, &quot;كيريباتي&quot;,
 &quot;كوريا الديمقراطية الشعبية وجمهورية&quot;, &quot;جمهورية كوريا&quot;, &quot;الكويت&quot;, &quot;قرغيزستان&quot;,
 &quot;جمهورية لاو الديمقراطية&quot;, &quot;لاتفيا&quot;, &quot;لبنان&quot;, &quot;ليسوتو&quot;, &quot;ليبيريا&quot;, &quot;ليبيا&quot;,
 &quot;ليختنشتاين&quot;, &quot;ليتوانيا&quot;, &quot;لوكسمبورغ&quot;, &quot;ماكاو&quot;, &quot;مقدونيا, الجمهورية اليوغوسلافية السابقة من&quot;,
 &quot;مدغشقر&quot;, &quot;ملاوي&quot;, &quot;ماليزيا&quot;, &quot;جزر المالديف&quot;, &quot;مالي&quot;, &quot;مالطا&quot;,
 &quot;جزر مارشال&quot;, &quot;المارتينيك&quot;, &quot;موريتانيا&quot;, &quot;موريشيوس&quot;, &quot;مايوت&quot;, &quot;المكسيك&quot;,
 &quot;ولايات ميكرونيزيا الموحدة من&quot;, &quot;مولدافيا, الجمهورية&quot;, &quot;موناكو&quot;, &quot;منغوليا&quot;,
 &quot;مونتسيرات&quot;, &quot;المغرب&quot;,	 &quot;موزمبيق&quot;, &quot;ميانمار&quot;, &quot;ناميبيا&quot;, &quot;ناورو&quot;,
 &quot;نيبال&quot;, &quot;هولندا&quot;, &quot;جزر الانتيل الهولندية&quot;, &quot;كاليدونيا الجديدة&quot;, &quot;نيوزيلندا&quot;,
 &quot;نيكاراجوا&quot;, &quot;النيجر&quot;, &quot;نيجيريا&quot;, &quot;نيوي&quot;, &quot;جزيرة نورفولك&quot;,
 &quot;جزر ماريانا الشمالية&quot;, &quot;النرويج&quot;, &quot;عمان&quot;, &quot;باكستان&quot;, &quot;بالاو&quot;,
 &quot;بنما&quot;, &quot;بابوا غينيا الجديدة&quot;, &quot;باراجواي&quot;, &quot;بيرو&quot;, &quot;الفلبين&quot;, &quot;بيتكيرن&quot;,
 &quot;بولندا&quot;, &quot;البرتغال&quot;, &quot;بورتوريكو&quot;, &quot;قطر&quot;, &quot;ريونيون&quot;, &quot;رومانيا&quot;,
 &quot;الاتحاد الروسي&quot;, &quot;رواندا&quot;, &quot;سانت كيتس ونيفيس&quot;, &quot;سانت لوسيا&quot;, &quot;سانت فنسنت وغرينادين&quot;,
 &quot;ساموا&quot;, &quot;سان مارينو&quot;, &quot;ساو تومي وبرينسيبي&quot;, &quot;المملكة العربية السعودية&quot;, &quot;السنغال&quot;,
 &quot;سيشل&quot;, &quot;سيراليون&quot;, &quot;سنغافورة&quot;,	 &quot;سلوفاكيا (جمهورية سلوفاكيا)&quot;, &quot;سلوفينيا&quot;,
 &quot;جزر سليمان&quot;, &quot;الصومال&quot;, &quot;جنوب أفريقيا&quot;, &quot;ساندويتش الجنوبية جورجيا الجنوبية وجزر&quot;,
 &quot;اسبانيا&quot;, &quot;سريلانكا&quot;, &quot;سانت هيلانة&quot;, &quot;سان بيير وميكلون&quot;, &quot;السودان&quot;, &quot;سورينام&quot;,
 &quot;جزر سفالبارد وجان ماين&quot;, &quot;سوازيلاند&quot;, &quot;السويد&quot;, &quot;سويسرا&quot;, &quot;سوريا&quot;, &quot;تايوان&quot;,
 &quot;طاجيكستان&quot;, &quot;تنزانيا المتحدة, جمهورية&quot;, &quot;تايلند&quot;, &quot;توغو&quot;, &quot;توكيلاو&quot;, &quot;تونغا&quot;,
 &quot;ترينيداد وتوباغو&quot;, &quot;تونس&quot;, &quot;تركيا&quot;, &quot;تركمانستان&quot;, &quot;جزر تركس وكايكوس&quot;, &quot;توفالو&quot;,
 &quot;أوغندا&quot;, &quot;أوكرانيا&quot;, &quot;الامارات العربية المتحدة&quot;, &quot;الولايات المتحدة البعيدة الصغيرة جزر&quot;,
 &quot;أوروغواي&quot;, &quot;أوزبكستان&quot;, &quot;فانواتو&quot;, &quot;فنزويلا&quot;, &quot;فيتنام&quot;, &quot;جزر فيرجن (البريطانية)&quot;,
 &quot;الجزر العذراء (الولايات المتحدة)&quot;, &quot;واليس وفوتونا&quot;, &quot;اليمن&quot;, &quot;يوغوسلافيا&quot;, &quot;زامبيا&quot;, &quot;زيمبابوي&quot;
   };
</pre>
<p>الخطوة التالية هي إنشاء الكلاس:</p>
<pre class="brush: java; title: ; notranslate">
public class HelloListView extends ListActivity {
    @Override
     public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);

	/*
	* نقوم بإنشاء الكائن الخاص بالمحوّل والذي يأخذ ثلاثة متغيرات الأول هو
	 * السياق، ووضعنا فيه this للتحديد بأن السياق الحالي هو المستعمل.
	* المتغير الثاني هو الواجهة النصية التي تستعمل لكل صف من صفوف القائمة.
	* وفيها نضع اسم الملف الذي قمنا بإنشائه قبل قليل. أما المتغير الثالث
	* فهو المصفوفة التي تحتوي على المعلومات المراد عرضها
	*/

	ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list_item, COUNTRIES);
	setListAdapter(adapter);
}
</pre>
<p>بهذا تصبح القائمة الرسومية جاهزة للعرض. وسنقوم بإضافة أوامر معينة عند الضغط على أي من الصفوف في القائمة. للقيام بهذا سوف نستعمل واجهة Interface OnItemClickListener والتي تقوم بإضافة الدوال الخاصة بالتحكم بضغطات المستخدم على أي من الصفوف. بعد إضافة الواجهة للكلاس الذي قمنا بتصميمه قبل قليل ليصبح الكلاس بهذا الشكل:</p>
<pre class="brush: java; title: ; notranslate">
public class HelloListView extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

/* نقوم بإنشاء الكائن الخاص بالمحوّل والذي يأخذ ثلاثة متغيرات
الأول هو السياق، ووضعنا فيه this للتحديد بأن السياق الحالي هو
المستعمل. المتغير الثاني هو الواجهة النصية التي تستعمل لكل صف
من صفوف القائمة. وفيها نضع اسم الملف الذي قمنا بإنشائه قبل قليل.
أما المتغير الثالث فهو المصفوفة التي تحتوي على المعلومات المراد
عرضها */

ArrayAdapter adapter =
                     new ArrayAdapter(this, R.layout.list_item, COUNTRIES);

 // هذه الدالة تقوم بربط الكائن الخاص بالمحوّل
setListAdapter(adapter);

// نقوم هنا بإنشاء متغير للقائمة المعروضة حتى يمكننا من التعامل معها لاحقاً
 ListView lv = getListView();

// هنا نقوم بربط الواجهة بالقائمة، حتى يكون بإمكاننا
//وضع أوامر معينة عند الضغط على أحد الصفوف
lv.setOnItemClickListener(this);

// في هذه الدالة نقوم بوضع الأوامر التي نريد تفعيلها عند الضغط
// على كل صف توجد في الدالة أربعة متغيرات، الأول هو المحوّل،
// الثاني هو الواجهة الرسومية، والثالث هو موقع الصف من القائمة،
// والرابع هو رقم الصف

public void onItemClick(AdapterView parent, View view, int position, long id) {

// عند الضغط على الصف سوف يظهر مربع طافٍ وفيه محتوى الصف

Toast.makeText(getApplicationContext(),
               ((TextView) view).getText(), Toast.LENGTH_SHORT).show()});

}
}
</pre>
<p>ملاحظة أخيرة: يمكن الاستعاضة عن المصفوفة التي استعملناها بملف مصدري Resource File داخل التطبيق يحتوي على الأسماء. يساعد هذا في عدة أمور أهمها تنظيم التطبيق ليكون سهل القراءة والتعديل، وأيضاً الترجمة حيث يمكن إضافة عدة ملفات تحتوي ترجمات مختلفة لنفس النص ويقوم الأندرويد باستعمال المناسب منها على الجهاز.<br />
لاستعمال الملف المصدري قم بإنشاء ملف جديد وسمه ما شئت وضع فيه هذا الكود:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;resources&gt;
&lt;string-array name=&quot;countries_array&quot;&gt;
&lt;item&gt;البحرين&lt;/item&gt;
&lt;item&gt;بنغلادش&lt;/item&gt;
&lt;item&gt;باربادوس&lt;/item&gt;
&lt;item&gt;بالاروس&lt;/item&gt;
&lt;item&gt;بلجيكا&lt;/item&gt;
&lt;item&gt;بليز&lt;/item&gt;
&lt;item&gt;بنين&lt;/item&gt;
&lt;/string-array&gt;
&lt;/resources&gt;
</pre>
<p>وقم بتغيير سطر المحوّل Adapter في الكلاس إلى هذا:</p>
<pre class="brush: java; title: ; notranslate">
String[] countries = getResources().getStringArray(R.array.countries_array);
setListAdapter(new ArrayAdapter(this, R.layout.list_item, countries));
</pre>
<p style="direction: rtl;">يمكنكم تحميل المشروع جاهزاً لبرنامج الـ Eclipse:</p>
<p style="direction: rtl;"><a href="http://www.tech-scraps.com/wp-content/uploads/2012/05/HelloAndroid.zip">HelloAndroid</a></p>
<p>أتمنى أن تعجبكم هذه التدوينة، وأرجو سماع تعليقاتكم وآرائكم فيها.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-scraps.com/2012/05/listview-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>رشح المدونة لمسابقة ارابيسك</title>
		<link>http://www.tech-scraps.com/2012/04/%d8%b1%d8%b4%d8%ad-%d8%a7%d9%84%d9%85%d8%af%d9%88%d9%86%d8%a9-%d9%84%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d8%a7%d8%b1%d8%a7%d8%a8%d9%8a%d8%b3%d9%83/</link>
		<comments>http://www.tech-scraps.com/2012/04/%d8%b1%d8%b4%d8%ad-%d8%a7%d9%84%d9%85%d8%af%d9%88%d9%86%d8%a9-%d9%84%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d8%a7%d8%b1%d8%a7%d8%a8%d9%8a%d8%b3%d9%83/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 05:35:28 +0000</pubDate>
		<dc:creator>عبد القهار الحسني</dc:creator>
				<category><![CDATA[عام]]></category>
		<category><![CDATA[تحديثات المدونة]]></category>

		<guid isPermaLink="false">http://www.tech-scraps.com/?p=680</guid>
		<description><![CDATA[السلام عليكم
وأخيراً دخلت إلى مسابقة أرابيسك للمدونات العربية وتم ترشيح المدونة إلى المرحلة الأولى في المسابقة، التصويت الآن مفتوح للزوار ويمكنكم التصويت للمدونة من خلال هذا الرابط:

http://arabisk-award.com/blog/tech-scraps.com

أتمنى أن تكونوا قد استفدتم من المدونة في الفترة الماضية وإن شاء الله سوف يكون هناك المزيد من الدروس في الفترة المسبقة عن الأندرويد والشبكات الاجتماعية. أتمنى أن اسمع تعليقاتكم عن طبيعة الشروحات التي تريدونها في التدوينة.
]]></description>
			<content:encoded><![CDATA[<p style="direction: rtl;">السلام عليكم</p>
<p style="direction: rtl;">وأخيراً دخلت إلى مسابقة أرابيسك للمدونات العربية وتم ترشيح المدونة إلى المرحلة الأولى في المسابقة، التصويت الآن مفتوح للزوار ويمكنكم التصويت للمدونة من خلال هذا الرابط:</p>
<p style="direction: rtl; text-align: center;"><a href="http://arabisk-award.com/blog/tech-scraps.com"><img class="alignnone" title="Arabisk logo" src="http://arabisk-award.com/images/logo.png" alt="" width="250" height="104" /></a></p>
<p style="direction: rtl; text-align: center;"><strong><span style="font-size: x-large;"><a href="http://arabisk-award.com/blog/tech-scraps.com">http://arabisk-award.com/blog/tech-scraps.com</a></span></strong></p>
<p style="direction: rtl; text-align: center;">
<p style="direction: rtl;">أتمنى أن تكونوا قد استفدتم من المدونة في الفترة الماضية وإن شاء الله سوف يكون هناك المزيد من الدروس في الفترة المسبقة عن الأندرويد والشبكات الاجتماعية. أتمنى أن اسمع تعليقاتكم عن طبيعة الشروحات التي تريدونها في التدوينة.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-scraps.com/2012/04/%d8%b1%d8%b4%d8%ad-%d8%a7%d9%84%d9%85%d8%af%d9%88%d9%86%d8%a9-%d9%84%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d8%a7%d8%b1%d8%a7%d8%a8%d9%8a%d8%b3%d9%83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>سلسلة تعلم الأندرويد &#8211; الحلقة الثامنة: الواجهات الرسومية</title>
		<link>http://www.tech-scraps.com/2012/02/android-layouts/</link>
		<comments>http://www.tech-scraps.com/2012/02/android-layouts/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 14:39:38 +0000</pubDate>
		<dc:creator>عبد القهار الحسني</dc:creator>
				<category><![CDATA[أندرويد]]></category>
		<category><![CDATA[دروس وشروحات]]></category>

		<guid isPermaLink="false">http://www.tech-scraps.com/?p=538</guid>
		<description><![CDATA[معرفة الواجهات الرسومية Views في تطبيقات الأندرويد هي الخطوة الأولى لبرمجة التطبيقات. فالواجهات الرسومية هي التي ترتبط المستخدم بالكود الذي تضعه. في الأندرويد هناك العديد من الواجهات الرسومية التي تمكنك من وضع واجهة جميلة وبشكل مرن أيضاً، وتجعل المستخدم يتحكم بالتطبيق بسهولة ويسر. سوف أقوم بشرح الواجهات الرئيسية في الأندرويد في هذه الحلقة. يمكن تقسيم الواجهات الرسومية إلى قسمين، الأول: هو واجهات الأطر العامة Layout Views والآخر هو الواجهات المتضَمنة [...]]]></description>
			<content:encoded><![CDATA[<p style="direction: rtl;">معرفة الواجهات الرسومية Views في تطبيقات الأندرويد هي الخطوة الأولى لبرمجة التطبيقات. فالواجهات الرسومية هي التي ترتبط المستخدم بالكود الذي تضعه. في الأندرويد هناك العديد من الواجهات الرسومية التي تمكنك من وضع واجهة جميلة وبشكل مرن أيضاً، وتجعل المستخدم يتحكم بالتطبيق بسهولة ويسر. سوف أقوم بشرح الواجهات الرئيسية في الأندرويد في هذه الحلقة. يمكن تقسيم الواجهات الرسومية إلى قسمين، الأول: هو واجهات الأطر العامة Layout Views والآخر هو الواجهات المتضَمنة (بفتح الضاء) داخل الأطر العامة، وسوف يتم تسميتها بالواجهات الجزئية لأنها تدخل ضمن واجهات أخرى ولا تشكل واجهة قائمة بذاتها في معظم الأحيان.</p>
<h2 style="direction: rtl;">واجهات الأطر العامة Layout Views:</h2>
<p style="direction: rtl;">هناك أربع واجهات (تسمى أيضاً أطر) مهمة تستخدم بكثرة في التطبيقات لسهولة استعمالها وأداءها الغرض المطلوب بشكل فعّال، هذه الواجهات هي: الواجهة السطرية  LinearLayout والواجهة العلائقية  RelativeLayout والواجهة اللسانية  TabHost والواجهة الجدولية  TableLayout.</p>
<h2 style="direction: rtl;">الواجهة السطرية &#8211; LinearLayout:</h2>
<p style="direction: rtl;">هي أسهل الواجهات الأربع ومهمتها عرض الواجهات داخلها بشكل متسلسل عمودي أو أفقي. تقوم هذه الواجهة الرسومية بعرض كل الواجهات الفرعية داخلها متراصفة بشكل عمودي أو أفقي بغض النظر عن حجم الواجهات تلك. يمكنك ترتيب الواجهات الفرعية بطريقتين، الأولى: وضع عرض ثابت لكل واجهة، أو وضع وزن لكل واجهة. وزن الواجهة android:weight يعني أهمية هذه الواجهة بالنسبة لبقيات الواجهة داخل الإطار الخيطي. فمثلاً إذا كان الإطار يحتوي على واجهتين لكل منها وزن رقم 1، فهذا يعني أن كلاً منهما سوف يتحل نصف المساحة الكاملة. فإذا وضعنا واجهة ثالثة بجانبهما تحمل الوزن 2، ستحتل الواجهة الجديدة نصف المساحة والواجهتين الأخريين نصف المساحة الباقية.</p>
<p style="direction: rtl;">مثال على الواجهة السطرية:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;!-- عرض الواجهة بالشكل العمودي --&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;fill_parent&quot;
    android:orientation=&quot;vertical&quot; &gt;

    &lt;LinearLayout
        android:layout_width=&quot;fill_parent&quot;
        android:layout_height=&quot;fill_parent&quot;
        android:layout_weight=&quot;1&quot;
        android:orientation=&quot;horizontal&quot; &gt;

        &lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;fill_parent&quot;
            android:layout_weight=&quot;1&quot;
            android:background=&quot;#CD5C5C&quot;
            android:gravity=&quot;center_horizontal&quot;
            android:text=&quot;أحمر&quot;
            android:textColor=&quot;#000000&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;fill_parent&quot;
            android:layout_weight=&quot;1&quot;
            android:background=&quot;#008000&quot;
            android:gravity=&quot;center_horizontal&quot;
            android:text=&quot;أخضر&quot;
            android:textColor=&quot;#000000&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;fill_parent&quot;
            android:layout_weight=&quot;1&quot;
            android:background=&quot;#ADD8E6&quot;
            android:gravity=&quot;center_horizontal&quot;
            android:text=&quot;أزرق&quot;
            android:textColor=&quot;#000000&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;fill_parent&quot;
            android:layout_weight=&quot;1&quot;
            android:background=&quot;#FFFF00&quot;
            android:gravity=&quot;center_horizontal&quot;
            android:text=&quot;أصفر&quot;
            android:textColor=&quot;#000000&quot; /&gt;
    &lt;/LinearLayout&gt;
&lt;!-- عرض الواجهة بالشكل الأفقي--&gt;
    &lt;LinearLayout
        android:layout_width=&quot;fill_parent&quot;
        android:layout_height=&quot;fill_parent&quot;
        android:layout_weight=&quot;1&quot;
        android:orientation=&quot;vertical&quot; &gt;

        &lt;TextView
            android:layout_width=&quot;fill_parent&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_weight=&quot;1&quot;
            android:text=&quot;السطر الأول&quot;
            android:textColor=&quot;#ffffff&quot;
            android:textSize=&quot;15pt&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;fill_parent&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_weight=&quot;1&quot;
            android:text=&quot;السطر الثاني&quot;
            android:textColor=&quot;#ffffff&quot;
            android:textSize=&quot;15pt&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;fill_parent&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_weight=&quot;1&quot;
            android:text=&quot;السطر الثالث&quot;
            android:textColor=&quot;#ffffff&quot;
            android:textSize=&quot;15pt&quot; /&gt;

        &lt;TextView
            android:layout_width=&quot;fill_parent&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_weight=&quot;1&quot;
            android:text=&quot;السطر الرابع&quot;
            android:textColor=&quot;#ffffff&quot;
            android:textSize=&quot;15pt&quot; /&gt;
    &lt;/LinearLayout&gt;
&lt;/LinearLayout&gt;
</pre>
<p style="direction: rtl;">سينتج الكود هذا الشكل:</p>
<p><center><a href="http://www.tech-scraps.com/wp-content/uploads/2012/02/LinearLayout.png"><img class="wp-image-658 aligncenter" title="LinearLayout" src="http://www.tech-scraps.com/wp-content/uploads/2012/02/LinearLayout.png" alt="" width="336" height="536" /></a></center></p>
<p style="direction: rtl;">يمكنك تغيير القيم في الكود إلى ما تريد لترى كيف يؤثر ذلك على عرض الواجهات الرسومية داخل الواجهة السطرية.</p>
<h2 style="direction: rtl;">الواجهة العلائقية &#8211; RelativeLayout:</h2>
<p style="direction: rtl;">هي أحدى اكثر الواجهات استعمالاً أيضاً وذلك لسهولة تحريك الواجهات الفرعية داخلها. كما يبدو من اسمها تعتمد هذه الواجهة على التناسب بين الواجهات الفرعية داخلها لعرض الكائنات، ويمكنك وضع واجهة معينة لتكون فوق أو تحت أو يسار أو يمين واجهة أخرى. هذا النوع من الواجهات يستعمل للنماذج أو للتحكم بالواجهات الفرعية بشكل أفضل من الواجهة السطرية.</p>
<p style="direction: rtl;">مثال على الواجهة العلائقية:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;fill_parent&quot; &gt;

    &lt;TextView
        android:id=&quot;@+id/label&quot;
        android:layout_width=&quot;fill_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_margin=&quot;15dp&quot;
        android:text=&quot;أدخل النص هنا: &quot; /&gt;

    &lt;EditText
        android:id=&quot;@+id/entry&quot;
        android:layout_width=&quot;fill_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_below=&quot;@id/label&quot;
        android:background=&quot;@android:drawable/editbox_background&quot;
        android:lines=&quot;2&quot; /&gt;

    &lt;Button
        android:id=&quot;@+id/ok&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_alignParentLeft=&quot;true&quot;
        android:layout_below=&quot;@id/entry&quot;
        android:layout_marginLeft=&quot;10dip&quot;
        android:text=&quot;أرسل&quot; /&gt;

    &lt;Button
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_alignTop=&quot;@id/ok&quot;
        android:layout_toRightOf=&quot;@id/ok&quot;
        android:text=&quot;إلغاء&quot; /&gt;

&lt;/RelativeLayout&gt;
</pre>
<p style="direction: rtl;">وهذه النتيجة النهائية للكود:</p>
<p><center><a href="http://www.tech-scraps.com/wp-content/uploads/2012/02/RelativeLayout.png"><img class="aligncenter  wp-image-662" title="RelativeLayout" src="http://www.tech-scraps.com/wp-content/uploads/2012/02/RelativeLayout.png" alt="" width="288" height="458" /></a></center></p>
<h2 style="direction: rtl;">الإطار الجدولي &#8211; Table Layout:</h2>
<p style="direction: rtl;">هو أيضاً من الأطر السهلة والمستعملة بكثرة أيضاً. هذا النوع من الواجهات هو سهل على مصممي تطبيقات الويب ومستعملي لغة الهتمل حيث أنها تستعمل نفس الطريقة لبناء جدول ووضع محتويات فيه. يمكن وضع أي محتوى في الجدول بل حتى أنه يمكن وضع أطر وواجهات أخرى ومن ضمنها الأطار الجدولي نفسه. ما ينقص هذا الإطار هو الحدود حيث أن لا يتضمن أي وسم لوضع حدود للجدول. يمكن إظهار الحدود من خلال حلول أخرى كاستعمال الـ Margins (سوف أشرح ذلك في درس مقبل إن شاء الله).</p>
<p style="direction: rtl;">مثال على الواجهة:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;TableLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;fill_parent&quot;
    android:stretchColumns=&quot;1&quot; &gt;

    &lt;TableRow &gt;

        &lt;TextView
            android:gravity=&quot;right&quot;
            android:padding=&quot;3dip&quot;
            android:text=&quot;Ctrl-O&quot; /&gt;

        &lt;TextView
            android:layout_column=&quot;1&quot;
            android:padding=&quot;3dip&quot;
            android:text=&quot;فتح ...&quot; /&gt;
    &lt;/TableRow&gt;

    &lt;TableRow &gt;

        &lt;TextView
            android:gravity=&quot;right&quot;
            android:padding=&quot;3dip&quot;
            android:text=&quot;Ctrl-S&quot; /&gt;

        &lt;TextView
            android:layout_column=&quot;1&quot;
            android:padding=&quot;3dip&quot;
            android:text=&quot;حفظ ....&quot; /&gt;
    &lt;/TableRow&gt;

    &lt;TableRow &gt;

        &lt;TextView
            android:gravity=&quot;right&quot;
            android:padding=&quot;3dip&quot;
            android:text=&quot;Ctrl-Shift-S&quot; /&gt;

        &lt;TextView
            android:layout_column=&quot;1&quot;
            android:padding=&quot;3dip&quot;
            android:text=&quot;حفظ باسم...&quot; /&gt;
    &lt;/TableRow&gt;

    &lt;View
        android:layout_height=&quot;2dip&quot;
        android:background=&quot;#FF909090&quot; /&gt;

    &lt;TableRow &gt;

        &lt;TextView
            android:gravity=&quot;right&quot;
            android:padding=&quot;3dip&quot;
            android:text=&quot;&quot; /&gt;

        &lt;TextView
            android:padding=&quot;3dip&quot;
            android:text=&quot;استيراد ...&quot; /&gt;

        &lt;TextView
            android:padding=&quot;3dip&quot;
            android:text=&quot;X&quot; /&gt;
    &lt;/TableRow&gt;

    &lt;TableRow &gt;

        &lt;TextView
            android:gravity=&quot;right&quot;
            android:padding=&quot;3dip&quot;
            android:text=&quot;Ctrl-E&quot; /&gt;

        &lt;TextView
            android:padding=&quot;3dip&quot;
            android:text=&quot;تصدير ...&quot; /&gt;

        &lt;TextView
            android:padding=&quot;3dip&quot;
            android:text=&quot;X&quot; /&gt;
    &lt;/TableRow&gt;

    &lt;View
        android:layout_height=&quot;2dip&quot;
        android:background=&quot;#FF909090&quot; /&gt;

    &lt;TableRow &gt;

        &lt;TextView
            android:layout_column=&quot;1&quot;
            android:padding=&quot;3dip&quot;
            android:text=&quot;خروج&quot; /&gt;
    &lt;/TableRow&gt;

&lt;/TableLayout&gt;
</pre>
<p>وهذه نتيجة الكود:</p>
<p><center><a href="http://www.tech-scraps.com/wp-content/uploads/2012/02/TableLayout.png"><img class="aligncenter  wp-image-666" title="TableLayout" src="http://www.tech-scraps.com/wp-content/uploads/2012/02/TableLayout.png" alt="" width="336" height="533" /></a></center></p>
<h2 style="direction: rtl;">الواجهة اللسانية  - TabHost:</h2>
<p style="direction: rtl;">هذه الواجهة الرسومية تستعمل في العادة كحاضنة للنشاطات المختلفة في التطبيق. وسهولة استعمالها بالنسبة للمستخدم العادي هو سبب شهرتها. حيث تحتوي على أزرار رسومية مع نص معين وفوق (أو تحت) تلك الأزرار تكون النشاطات المختلفة، وعند الضغط على كل زر يظهر النشاط المتعلق به.</p>
<p style="direction: rtl;">أتمنى أن تكون هذه الحلقة مفيدة، وإن شاء الله في الدرس القادم سوف أشرح الواجهات الرسومية الأخرى.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-scraps.com/2012/02/android-layouts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>أكواد أندرويد &#8211; Toast Message</title>
		<link>http://www.tech-scraps.com/2012/02/android-toast-message/</link>
		<comments>http://www.tech-scraps.com/2012/02/android-toast-message/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 03:34:50 +0000</pubDate>
		<dc:creator>عبد القهار الحسني</dc:creator>
				<category><![CDATA[أندرويد]]></category>
		<category><![CDATA[أكواد]]></category>

		<guid isPermaLink="false">http://www.tech-scraps.com/?p=644</guid>
		<description><![CDATA[بناء على الطلب في الحلقة السابقة من قبل أحد زوار المدونة أضع في هذه المرة كوداً لاستعمال الـ Toast Message أو التنبيه الطافي. الكود عبارة عن كلاس يستعمل الـ Toast من خلال واجهة مخصصة Custom Layout. استعملت هذا الكود في تطبيق iAndroidQuran وأحببت وضعه هنا.
مثال على التنبيه من تطبيق iAndroidQuran:

الواجهة الرسومية &#8211; toast_layout.xml:

&#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62;
&#60;LinearLayout xmlns:android=&#34;http://schemas.android.com/apk/res/android&#34;
 android:id=&#34;@+id/toast_layout_root&#34;
 android:orientation=&#34;horizontal&#34;
 android:layout_width=&#34;wrap_content&#34;
 android:layout_height=&#34;wrap_content&#34;
 android:padding=&#34;10dp&#34;
 android:layout_marginLeft=&#34;25dp&#34;
 android:layout_marginRight=&#34;25dp&#34;
 android:background=&#34;@drawable/toast_background&#34;
 &#62;
 &#60;ImageView android:id=&#34;@+id/custom_toast_image&#34;
 android:layout_width=&#34;42px&#34;
 android:layout_height=&#34;42px&#34;
 android:layout_marginRight=&#34;10dp&#34;
 [...]]]></description>
			<content:encoded><![CDATA[<p style="direction: rtl;">بناء على الطلب في الحلقة السابقة من قبل أحد زوار المدونة أضع في هذه المرة كوداً لاستعمال الـ Toast Message أو التنبيه الطافي. الكود عبارة عن كلاس يستعمل الـ Toast من خلال واجهة مخصصة Custom Layout. استعملت هذا الكود في تطبيق iAndroidQuran وأحببت وضعه هنا.</p>
<p style="direction: rtl;">مثال على التنبيه من تطبيق iAndroidQuran:</p>
<p style="direction: rtl;"><a href="http://www.tech-scraps.com/wp-content/uploads/2012/02/toast-message.png"><img class="aligncenter size-full wp-image-649" title="toast-message" src="http://www.tech-scraps.com/wp-content/uploads/2012/02/toast-message.png" alt="" width="480" height="800" /></a></p>
<p style="direction: rtl;">الواجهة الرسومية &#8211; toast_layout.xml:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
 android:id=&quot;@+id/toast_layout_root&quot;
 android:orientation=&quot;horizontal&quot;
 android:layout_width=&quot;wrap_content&quot;
 android:layout_height=&quot;wrap_content&quot;
 android:padding=&quot;10dp&quot;
 android:layout_marginLeft=&quot;25dp&quot;
 android:layout_marginRight=&quot;25dp&quot;
 android:background=&quot;@drawable/toast_background&quot;
 &gt;
 &lt;ImageView android:id=&quot;@+id/custom_toast_image&quot;
 android:layout_width=&quot;42px&quot;
 android:layout_height=&quot;42px&quot;
 android:layout_marginRight=&quot;10dp&quot;
 android:layout_gravity=&quot;center&quot;
 /&gt;
 &lt;TextView android:id=&quot;@+id/custom_toast_message&quot;
 android:layout_width=&quot;200dp&quot;
 android:layout_height=&quot;wrap_content&quot;
 android:textColor=&quot;#000&quot;
 /&gt;
&lt;/LinearLayout&gt;
</pre>
<p style="direction: rtl;">ملف الجافا:</p>
<pre class="brush: java; title: ; notranslate">

package com.iandroid.test; // قم بتغيير الحزمة إلى الحزمة الخاصة بتطبيقك

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.iandroid.test.R;  // قم بتغيير الحزمة إلى الحزمة الخاصة بتطبيقك

public class ToastNotification {

private LayoutInflater inflater;
 private View toastLayout;
 private Toast toast;
 private ImageView toastImage;
 private TextView toastText;
 private Context mContext;

 public ToastNotification(Context context)
 {
 inflater = LayoutInflater.from(context);
 toastLayout = inflater.inflate(R.layout.toast_layout, null);
 toast = new Toast(context);

 toastImage = (ImageView) toastLayout.findViewById(R.id.custom_toast_image);
 toastText = (TextView) toastLayout.findViewById(R.id.custom_toast_message);

 this.mContext = context;
 }

 /**
 * أظهر الرسالة للمستخدم
 *
 * @param message the message
 */
 public void show(int imageId, int messageId)
 {
 toastImage.setImageResource(imageId);
 toastText.setText(mContext.getText(messageId));
 toast.setDuration(Toast.LENGTH_LONG);
 toast.setView(toastLayout);
 toast.show();
 }
}
</pre>
<p style="direction: rtl;">كيفية الاستعمال:</p>
<pre class="brush: java; title: ; notranslate">
ToastNotification toastMessage = new ToastNotification(this);
toastMessage.show(R.drawable.toast_error, R.string.toast_message);
</pre>
<pre style="direction: rtl;">أتمنى أن يكون الكود مفيداً.</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-scraps.com/2012/02/android-toast-message/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>سلسلة تعلم الأندرويد – الحلقة السابعة: دور حياة النشاط</title>
		<link>http://www.tech-scraps.com/2012/02/activity-lifecycle/</link>
		<comments>http://www.tech-scraps.com/2012/02/activity-lifecycle/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 15:04:13 +0000</pubDate>
		<dc:creator>عبد القهار الحسني</dc:creator>
				<category><![CDATA[أندرويد]]></category>
		<category><![CDATA[مميز]]></category>
		<category><![CDATA[دروس وشروحات]]></category>

		<guid isPermaLink="false">http://www.tech-scraps.com/?p=608</guid>
		<description><![CDATA[يمثل النشاط جزءاً أساسية من التطبيق حيث يتضمن الواجهات الرسومية بالإضافة إلى البرمجة اللازمة للتحكم بتلك الواجهات. وسوف نتعرف على دور حياة النشاط (كيف يبدأ، وكيف يعمل، ومتى ينتهي) في تطبيقات الأندرويد.
نظرة عامة:
يتألف التطبيق من نشاطات مختلفة تتصل فيما بينها بالقادح أو الزناد (Intent). عندما يتم الإنتقال من نشاط إلى آخر يقوم الأندرويد بوضع النشاط السابقة في متراصّة (Stack) شبيهة بوظيفة &#8220;الرجوع&#8221; في متصفحات الأنترنت. عند الضغط على زر الخلف [...]]]></description>
			<content:encoded><![CDATA[<p style="direction: rtl;">يمثل النشاط جزءاً أساسية من التطبيق حيث يتضمن الواجهات الرسومية بالإضافة إلى البرمجة اللازمة للتحكم بتلك الواجهات. وسوف نتعرف على دور حياة النشاط (كيف يبدأ، وكيف يعمل، ومتى ينتهي) في تطبيقات الأندرويد.</p>
<h2 style="direction: rtl;">نظرة عامة:</h2>
<p style="direction: rtl;">يتألف التطبيق من نشاطات مختلفة تتصل فيما بينها بالقادح أو الزناد (Intent). عندما يتم الإنتقال من نشاط إلى آخر يقوم الأندرويد بوضع النشاط السابقة في متراصّة (Stack) شبيهة بوظيفة &#8220;الرجوع&#8221; في متصفحات الأنترنت. عند الضغط على زر الخلف في الأجهزة التي تعمل بالأندرويد يقوم الأندرويد بإرجاعك إلى النشاط السابق. هذه النقطة مهمة في معرفة دورة حياة التطبيق (Activity Life-cycle).</p>
<h2 style="direction: rtl;">نظرة أقرب:</h2>
<p style="direction: rtl;">الصورة التالية تمثل رسماً يوضح حياة النشاط منذ بدايته مروراً بعرضه للمستخدم وحتى انتهائه.</p>
<p style="direction: rtl;"><a href="http://www.tech-scraps.com/wp-content/uploads/2012/02/activity-lifecycle.png"><img class="aligncenter size-full wp-image-611" title="activity-lifecycle" src="http://www.tech-scraps.com/wp-content/uploads/2012/02/activity-lifecycle.png" alt="Activity Lifecycle" width="800" height="1000" /></a></p>
<p style="direction: rtl;">هناك ثلاثة دورات في هذه الصورة:</p>
<ul>
<li style="direction: rtl;"><strong>الدورة الكاملة لحياة التطبيق Entire Lifetime</strong>، وهي التي تحصل بين onCreate(Bundle) وبين onDestroy(). يمكن القيام بتجهيز المتغيرات والكائنات في دالة onCreate() وإنهاؤها في onDestory().</li>
<li style="direction: rtl;"><strong>الدورة المنظورة Visible Lifetime</strong>، وهي التي تكون  في هذه الدورة يمكن للمستخدم أن يرى النشاط وربما يكون النشاط في الخلفية وليس في الواجهة أي لا يمكن التفاعل معه. فمثلاً عندما تظهر رسالة تحذير للمستخدم يكون النشاط مرئياً ولكن في الخلفية لتكون رسالة التحذير في الأمام. تكون هذه الدورة بين onStart() وبين onStop(). وفي هاتين الدالتين يمكن التحكم بما سوف يعرض للمستخدم في النشاط. يتم استدعاء هاتين الدالتين أكثر من مرة (في حالة تم الانتقال من نشاط أ إلى ب ومن ثم العودة إلى أ).</li>
<li style="direction: rtl;"><strong>الدورة الأمامية Foreground Lifetime</strong>. هذه الدورة تكون بين الدالتين onResume() وonPause() ويمكن للمستخدم التفاعل مع النشاط بشكل طبيعي. يستعمل النشاط هاتين الدالتين بكثرة (كأن يدخل الجهاز وضع الاستعداد) ولذلك يجب مراعاة هذا الأمر عند إضافة أوامر لهاتين الدالتين في النشاط.</li>
</ul>
<p style="direction: rtl;">وبشكل عام يتألف النشاط من هذه الدوال، والتي يمكن استعمالها في كلاس فرعي تابع للكلاس Activity وكتابة ما تريد من أوامر:</p>
<pre class="brush: java; title: ; notranslate">
public class Activity extends ApplicationContext {
protected void onCreate(Bundle savedInstanceState);

protected void onStart();

protected void onRestart();

protected void onResume();

protected void onPause();

protected void onStop();

protected void onDestroy();
}
</pre>
<pre style="direction: rtl;">تفصيل أكثر:</pre>
<pre style="direction: rtl;">وهذا شرح للدوال المذكورة للتعرف عن قرب على طبيعة عملها وكيفية إتصال كل منها بالأخرى:</pre>
<pre style="direction: rtl;"></pre>
<div align="center">
<table dir="rtl" width="90%" border="1" cellspacing="0" cellpadding="4" bgcolor="#FFFFFF">
<tbody>
<tr>
<td width="129">
<p dir="RTL" align="center">الدالة</p>
</td>
<td width="324">
<p dir="RTL" align="center">الوصف</p>
</td>
<td width="18"></td>
<td width="97">
<p dir="RTL" align="center">التالي</p>
</td>
</tr>
<tr>
<td valign="top" width="129">
<p dir="RTL">onCreate()</p>
</td>
<td valign="bottom" width="324">
<p dir="RTL">تستدعى هذه الدالة عندما يتم إنشاء التطبيق لأول مرة. في هذه الدالة يتم إعداد النشاط، ربط المعلومات بالواجهات .. وغير ذلك. تحتوي هذا الدالة على متغير   Bundleيحتوي على الحالة السابقة للنشاط (إذا كانت هناك حالة سابقة).</p>
<p dir="RTL">تُتبع دائماً بـ  onStart()</p>
</td>
<td valign="bottom" width="18"></td>
<td width="97">
<p dir="RTL">onStart()</p>
</td>
</tr>
<tr>
<td colspan="4" valign="top" width="568">
<hr />
</td>
</tr>
<tr>
<td valign="top" width="129">
<p dir="RTL">onRestart()</p>
</td>
<td valign="bottom" width="324">
<p dir="RTL">يتم استدعاء هذه الدالة بعد إيقاف النشاط وقبل تشغيله مرة أخرى.</p>
<p dir="RTL">تُتبع دائماً بـ  onStart()</p>
</td>
<td valign="bottom" width="18"></td>
<td width="97">
<p dir="RTL">onStart()</p>
</td>
</tr>
<tr>
<td colspan="4" valign="top" width="568">
<hr />
</td>
</tr>
<tr>
<td valign="top" width="129">
<p dir="RTL">onStart()</p>
</td>
<td valign="bottom" width="324">
<p dir="RTL">يتم استدعاء هذه الدالة عندما يكون النشاط منظوراً للمستخدم.</p>
<p dir="RTL">تُتبع بـ onResume() إذا أصبح النشاط في مقدمة المتراصّة، أو onStop() إذا تم إخفاء النشاط.</p>
</td>
<td valign="bottom" width="18"></td>
<td width="97">
<p dir="RTL">onResume() أو  onStop()</p>
</td>
</tr>
<tr>
<td colspan="4" valign="top" width="568">
<hr />
</td>
</tr>
<tr>
<td valign="top" width="129">
<p dir="RTL">onResume()</p>
</td>
<td valign="bottom" width="324">
<p dir="RTL">يتم استدعاء هذه الدالة عندما يكون النشاط جاهزاً لاستقبال أوامر المستخدم. يكون النشاط في هذه الدالة في مقدمة المتراصّة ويمكن للمستخدم التفاعل معه.</p>
<p dir="RTL">تُتبع دائماً بـ  onPause()</p>
</td>
<td valign="bottom" width="18"></td>
<td width="97">
<p dir="RTL">onPause()</p>
</td>
</tr>
<tr>
<td colspan="4" valign="top" width="568">
<hr />
</td>
</tr>
<tr>
<td valign="top" width="129">
<p dir="RTL">onPause()</p>
</td>
<td valign="bottom" width="324">
<p dir="RTL">يتم استدعاء هذه الدالة عندما يقوم النظام ببدء نشاط سابق. يتم في هذه الدالة عادة حفظ الإعدادات، إيقاف الرسوم أو أية أمور أخرى تستعمل المعالج. الأمور في هذه الدالة يجب أن تكون خفيفة ولا تستهلك المعالج حتى يتم الانتقال للنشاط التالي بسرعة.</p>
<p dir="RTL">تُتبع دائماً بـ  onResume() إذا أصبح النشاط في مقدمة المتراصة، أو onStop() إذا تم إيقاف النشاط.</p>
</td>
<td valign="bottom" width="18"></td>
<td width="97">
<p dir="RTL">onResume() أو  onStop()</p>
</td>
</tr>
<tr>
<td colspan="4" valign="top" width="568">
<hr />
</td>
</tr>
<tr>
<td valign="top" width="129">
<p dir="RTL">onStop()</p>
</td>
<td valign="bottom" width="324">
<p dir="RTL">يتم استدعاء هذه الدالة عندما يختفي النشاط ويحل محله نشاط آخر. يحصل هذا عندما يتم الانتقال إلى نشاط آخر، أو العودة إلى نشاط سابق أو يتم إيقاف النشاط الحالي.</p>
<p dir="RTL">تُتبع دئماً بـ  onRestart() إذا كان النشاط يظهر للمستخدم، أو onDestory() إذا يتم إيقاف النشاط.</p>
</td>
<td valign="bottom" width="18"></td>
<td width="97">
<p dir="RTL">onRestart()  أو  onDestory()</p>
</td>
</tr>
<tr>
<td colspan="4" valign="top" width="568">
<hr />
</td>
</tr>
<tr>
<td valign="top" width="129">
<p dir="RTL">onDestory()</p>
</td>
<td valign="bottom" width="324">
<p dir="RTL">تستدعى هذه الدالة قبل أن يتم إيقاف النشاط بالكامل. يتم إيقاف النشاط في حالة تم إستدعاء  دالة finish()، أو من قبل النظام لإستعمال الذاكرة لنشاط آخر. للتفريق بين هاتين الحالتين يمكن استعمال isFinishing().</p>
</td>
<td valign="bottom" width="18"></td>
<td width="97">
<p dir="RTL">لا شي</p>
</td>
</tr>
</tbody>
</table>
</div>
<div align="center"></div>
<div style="direction: rtl; text-align: right;" align="center">أتمنى أن تكون هذه الحلقة مفيدة، وأرجو سماع آرائكم وتعليقاتكم.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-scraps.com/2012/02/activity-lifecycle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>أكواد أندرويد &#8211; استعراض التطبيق بوضعية Fullscreen</title>
		<link>http://www.tech-scraps.com/2012/02/%d8%a7%d8%b3%d8%aa%d8%b9%d8%b1%d8%a7%d8%b6-%d8%a7%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d9%85%d9%84%d8%a1-%d8%a7%d9%84%d8%b4%d8%a7%d8%b4%d8%a9/</link>
		<comments>http://www.tech-scraps.com/2012/02/%d8%a7%d8%b3%d8%aa%d8%b9%d8%b1%d8%a7%d8%b6-%d8%a7%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d9%85%d9%84%d8%a1-%d8%a7%d9%84%d8%b4%d8%a7%d8%b4%d8%a9/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 03:05:46 +0000</pubDate>
		<dc:creator>عبد القهار الحسني</dc:creator>
				<category><![CDATA[أندرويد]]></category>
		<category><![CDATA[مميز]]></category>
		<category><![CDATA[أكواد]]></category>

		<guid isPermaLink="false">http://www.tech-scraps.com/?p=591</guid>
		<description><![CDATA[السلام عليكم
سوف أقوم إن شاء الله بين الفترة والأخرى بوضع أكواد للأندرويد عملية ويمكن استعمالها في التطبيقات المختلفة. كود اليوم يقوم بعرض النشاط بكامل الشاشة في الأندرويد، والشرح موجود في الكود:

public class FullScreen extends Activity {
    @Override
/*
* أول دالة في دورة حياة النشاط، ومن خلالها يتم تعديل خيارات النشاط
*/
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

// إخفاء سطر العنوان في النشاط
        requestWindowFeature(Window.FEATURE_NO_TITLE);

// إخفاء [...]]]></description>
			<content:encoded><![CDATA[<p style="direction: rtl;">السلام عليكم</p>
<p style="direction: rtl;">سوف أقوم إن شاء الله بين الفترة والأخرى بوضع أكواد للأندرويد عملية ويمكن استعمالها في التطبيقات المختلفة. كود اليوم يقوم بعرض النشاط بكامل الشاشة في الأندرويد، والشرح موجود في الكود:</p>
<pre class="brush: java; title: ; notranslate">
public class FullScreen extends Activity {
    @Override
/*
* أول دالة في دورة حياة النشاط، ومن خلالها يتم تعديل خيارات النشاط
*/
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

// إخفاء سطر العنوان في النشاط
        requestWindowFeature(Window.FEATURE_NO_TITLE);

// إخفاء شريط التنبيهات في النشاط
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                WindowManager.LayoutParams.FLAG_FULLSCREEN);

// عرض النشاط (طبعاً يجب أن تضع محل R.layout.main الهيكل الخاص بتطبيقك
        setContentView(R.layout.main);
    }
}
</pre>
<p>يمكنك أيضاً عرض النشاط بكامل الصفحة من خلال ملف AndroidManifest.xml بوضع هذا الكود:</p>
<pre class="brush: xml; title: ; notranslate">&lt;activity android:name=&quot;.ActivityName&quot;
android:theme=&quot;@android:style/Theme.NoTitleBar.Fullscreen&quot;&gt;</pre>
<p>على الكلاس الخاص بالنشاط. أتمنى أن يكون الكود مفيداً.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-scraps.com/2012/02/%d8%a7%d8%b3%d8%aa%d8%b9%d8%b1%d8%a7%d8%b6-%d8%a7%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d9%85%d9%84%d8%a1-%d8%a7%d9%84%d8%b4%d8%a7%d8%b4%d8%a9/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>سلسلة تعلم الأندرويد – الحلقة السادسة: تصاريح التطبيق</title>
		<link>http://www.tech-scraps.com/2012/01/%d8%b3%d9%84%d8%b3%d9%84%d8%a9-%d8%aa%d8%b9%d9%84%d9%85-%d8%a7%d9%84%d8%a3%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af-%e2%80%93-%d8%a7%d9%84%d8%ad%d9%84%d9%82%d8%a9-%d8%a7%d9%84%d8%b3%d8%a7%d8%af%d8%b3%d8%a9/</link>
		<comments>http://www.tech-scraps.com/2012/01/%d8%b3%d9%84%d8%b3%d9%84%d8%a9-%d8%aa%d8%b9%d9%84%d9%85-%d8%a7%d9%84%d8%a3%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af-%e2%80%93-%d8%a7%d9%84%d8%ad%d9%84%d9%82%d8%a9-%d8%a7%d9%84%d8%b3%d8%a7%d8%af%d8%b3%d8%a9/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 14:11:51 +0000</pubDate>
		<dc:creator>عبد القهار الحسني</dc:creator>
				<category><![CDATA[أندرويد]]></category>
		<category><![CDATA[مميز]]></category>
		<category><![CDATA[دروس وشروحات]]></category>

		<guid isPermaLink="false">http://www.tech-scraps.com/?p=507</guid>
		<description><![CDATA[السلام عليكم
في الحلقة الأخيرة من هذه السلسلة قدمت عرضاً لملف AndroidManifest.xml والأوسمة التي يحتويها. وأحد هذه الأوسمة خاص بالتصاريح المطلوبة لتنصيب التطبيق على الجهاز وتشغيله. وسوف أقوم في هذه الحلقة بشرح طبيعة التصاريح وما هو دور كل منها.
صمم الأندرويد ليجعل كل تطبيق منعزل عن التطبيقات الأخرى ومحتويات الجهاز أيضاً ولا يمكنه الدخول إليها أو التحكم بها من دون إذن صريح من المستخدم وهذا ما يعرف بالتصاريح Permissions. وهذا طبعاً مبني [...]]]></description>
			<content:encoded><![CDATA[<p style="direction: rtl;">السلام عليكم</p>
<p style="direction: rtl;">في الحلقة الأخيرة من هذه السلسلة قدمت عرضاً لملف AndroidManifest.xml والأوسمة التي يحتويها. وأحد هذه الأوسمة خاص بالتصاريح المطلوبة لتنصيب التطبيق على الجهاز وتشغيله. وسوف أقوم في هذه الحلقة بشرح طبيعة التصاريح وما هو دور كل منها.</p>
<p style="direction: rtl;">صمم الأندرويد ليجعل كل تطبيق منعزل عن التطبيقات الأخرى ومحتويات الجهاز أيضاً ولا يمكنه الدخول إليها أو التحكم بها من دون إذن صريح من المستخدم وهذا ما يعرف بالتصاريح Permissions. وهذا طبعاً مبني على نظام اللينكس Linux وهو الذي يقم بعملية فصل التطبيقات عن بعضها البعض وعن النظام نفسه. إذاً هناك حاجة لوضع التصاريح في التطبيق إذا كنت تريد الدخول إلى محتويات الذاكرة الخارجية للجهاز، حسابات المستخدم أو موقعه من خلال GPS وغير ذلك. كل هذا يتم بوضع التصاريح في ملف AndroidManifst.xml  ويتم عرض التصاريح للمستخدم أثناء تحميل التطبيق وفي صفحة التطبيق داخل النظام في حال رغب المستخدم استعراضها مرة أخرى. هناك نوعين من التصاريح: تصاريح مفردة وتصاريح مجموعة. التصاريح المفردة تكون لطلب تصريح واحد فقط ويتم وضعها بشكل فردي من خلال هذا الكود:</p>
<pre class="brush: xml; title: ; notranslate">&lt;uses-permission android:name=&quot;android.permission.RECEIVE_SMS&quot; /&gt;</pre>
<p style="direction: rtl;">أما التصاريح المجموعة فتكون عبارة عن طلب عدة من التصاريح من خلال كود واحد، كما في هذا الكود:</p>
<pre class="brush: xml; title: ; notranslate">&lt;permission-group android:description=&quot;description&quot;
 android:icon=&quot;drawable&quot;
 android:label=&quot;label&quot;
 android:name=&quot;android.permission-group.PERSONAL_INFO&quot; /&gt;</pre>
<p style="direction: rtl;">في هذا الكود يتم طلب مجموعة تصاريح متعلقة بالمعلومات الخاصة بالمستخدم على الجهاز كالبريد الألكتروني، وجهات الاتصال، والتقويم وغير ذلك.</p>
<blockquote>
<p style="direction: rtl;">ملاحظة: عند وضع اسم التصريح يجب وضع اسم المساحة namespace وهو هنا android.permission للتصاريح المفردة، وandroid.permission-group للتصاريح المجموعة. اسم المساحة ضروري لكي يتم التفريق بين التصريحات التي يستعملها النظام والتصاريح التي تقوم بإنشائها في التطبيق.</p>
</blockquote>
<p style="direction: rtl;">هناك أربعة انواع من التصاريح الخاصة بالأندرويد:</p>
<ul>
<li>عادية (Regular)</li>
<li>خطرة (Dangerous)</li>
<li>نظام (System)</li>
<li>مصرحة (Signed)</li>
</ul>
<p style="direction: rtl;">النوعين الأوليين يمكن الحصول عليهما لكافة التطبيقات، اما النوعين الثالث والرابع فلا يمكن للتطبيق الحصول عليهما إلا إذا كان تطبيق نظام (أي ياتي جاهزاً مع الروم الخاص بالجهاز).</p>
<p style="direction: rtl;">قائمة بالتصاريح المفردة ووظيفة كل منها (وضعت في هذه القائمة أهم التصاريح، يمكنك مراجعة كافة التصاريح من موقع الأندرويد نفسه):</p>
<table width="589" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_CHECKIN_PROPERTIES">ACCESS_CHECKIN_PROPERTIES</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح بقراءة/كتابة إعدادات الجدول الخاص بقواعد بيانات تسجيلات الأماكن (Checking Database) التي يتم رفعها.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_COARSE_LOCATION">ACCESS_COARSE_LOCATION</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق باستعمال شبكة الهاتف أو الشبكة اللاسلكية (المكان العام &#8211; Coarse Loaction)</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATION">ACCESS_FINE_LOCATION</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق باستعمال شبكة الجي بي أس (المكان الدقيق &#8211; Fine Location)</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_LOCATION_EXTRA_COMMANDS">ACCESS_LOCATION_EXTRA_COMMANDS</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق باستعمال الأوامر الإضافية الخاصة بمزودي المكان (location provider)</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_MOCK_LOCATION">ACCESS_MOCK_LOCATION</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق بإنشاء مزودات خدمة وهمية لغرض التجربة</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NETWORK_STATE">ACCESS_NETWORK_STATE</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق بالحصول على معلومات خاصة بالشبكات المختلفة في الجهاز (لمعرفة ما إذا كانت الشبكة متوفرة أم لا، تعمل أم لا .. وغير ذلك)</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_SURFACE_FLINGER">ACCESS_SURFACE_FLINGER</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق باستعمال خصائص SurfaceFlinger ذات المستوى المتدني (التعامل مع العتاد بشكل أقرب).</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_WIFI_STATE">ACCESS_WIFI_STATE</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق بالحصول على معلومات الشبكة اللاسلكية في الجهاز (مفعّلة أم لا، مغلقة أم لا، وغير ذلك).</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#ACCOUNT_MANAGER">ACCOUNT_MANAGER</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بالدخول إلى الحسابات المضافة للجهاز. (الحسابات التي تضاف في الإعدادات في الأندرويد)</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#ADD_VOICEMAIL">ADD_VOICEMAIL</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح بإضافة بريد صوتي للتطبيق.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BATTERY_STATS">BATTERY_STATS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بالحصول على معلومات البطارية</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BIND_APPWIDGET">BIND_APPWIDGET</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بإعلام الخدمة الخاصة بالقطع (AppWidget Service) أي تطبيق يمكنه الدخول إلى بيانات القطع.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BIND_DEVICE_ADMIN">BIND_DEVICE_ADMIN</a></td>
<td valign="top" width="308">
<p dir="RTL">هذا التصريح هو لمستقبل إدارة الجهاز. وغرضه هو التأكد من أن المستقبل يتعامل مع النظام فقط (وليس مع تطبيقات أخرى مثلاً).</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BIND_INPUT_METHOD">BIND_INPUT_METHOD</a></td>
<td valign="top" width="308">
<p dir="RTL">يجب أن يطلب هذا التصريح في حالة استعمال <em><a href="http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html">InputMethodService</a></em> للتأكد من أن النظام هو القسم الوحيد الذي يرتبط التطبيق.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BIND_REMOTEVIEWS">BIND_REMOTEVIEWS</a></td>
<td valign="top" width="308">
<p dir="RTL"><code>يجب أن يطلب هذا التصريح في حالة استعمال</code><em><a href="http://developer.android.com/reference/android/widget/RemoteViewsService.html">RemoteViewsService</a></em>, للتأكد من ان النظام فقط يرتبط بالتطبيق</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BIND_TEXT_SERVICE">BIND_TEXT_SERVICE</a></td>
<td valign="top" width="308">
<p dir="RTL">يجب أن يطلب في حالة استعمال خدمة نصية (TextService) كاستعمال خدمة المدقق الإملائي SpellCheckerService للتأكد من النظام فقط يرتبط بالتطبيق</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BIND_VPN_SERVICE">BIND_VPN_SERVICE</a></td>
<td valign="top" width="308">
<p dir="RTL"><code>يجب أن يطلب في حالة استعمال</code> <em><a href="http://developer.android.com/reference/android/net/VpnService.html">VpnService</a></em>, للتأكد من النظام فقط يرتبط بالتطبيق</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BIND_WALLPAPER">BIND_WALLPAPER</a></td>
<td valign="top" width="308">
<p dir="RTL">يجب ان يطلب في حالة استعمال <em><a href="http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html">WallpaperService</a></em>, للتاكد من النظام فقط يرتبط بالتطبيق</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BLUETOOTH">BLUETOOTH</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق بالاتصال بالأجهزة الاخرى عن طريق البلوتوث</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BLUETOOTH_ADMIN">BLUETOOTH_ADMIN</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق بعمل مسح للاجهزة المحيطة وعمل مزاوجة معها عن طريق البلوتووث</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BRICK">BRICK</a></td>
<td valign="top" width="308">
<p dir="RTL">هذا التصريح مطلوب لتعطيل الجهاز (خطر جداً لذلك لا ينصح باستعماله)</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BROADCAST_PACKAGE_REMOVED">BROADCAST_PACKAGE_REMOVED</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق بارسال تنبيه بأن حزمة التطبيق قد حذفت</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BROADCAST_SMS">BROADCAST_SMS</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق بمعرفة حالة الرسائل النصية SMS</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BROADCAST_STICKY">BROADCAST_STICKY</a></td>
<td valign="top" width="308">
<p dir="RTL">يسمح للتطبيق بإرسال نوايا دائمة (Sticky intents). الخدمات المبنية على هذا النوع من النوايا يكون له الاولوية في الإبقاء في حالة احتاج النظام إلى الموارد.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#BROADCAST_WAP_PUSH">BROADCAST_WAP_PUSH</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بنشر تنبيهات WAP PUSH</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CALL_PHONE">CALL_PHONE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح  للتطبيق بالقيام بعمليات الاتصال من غير الحاجة لاستعمال واجهة الاتصال المعتادة</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CALL_PRIVILEGED">CALL_PRIVILEGED</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح  للتطبيق بالاتصال بأي رقم بما في ذلك أرقام الطوارئ من غير الحاجة لاستعمال واجهة الاتصال المعتادةAllows an</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CAMERA">CAMERA</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق باستعمال الكامير</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CHANGE_COMPONENT_ENABLED_STATE">CHANGE_COMPONENT_ENABLED_STATE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتغير أجزاء التطبيقات الأخرى (تفعيل وإلغاء تلك الأجزاء Components).</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CHANGE_CONFIGURATION">CHANGE_CONFIGURATION</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتغير إعدادات النظام (كاللغة المستعملة)</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CHANGE_NETWORK_STATE">CHANGE_NETWORK_STATE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتغير حالة الاتصال بالشبكة (أي إمكانية تفعيل أو إلغاء التفعيل للشبكة من خلال التطبيق)</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CHANGE_WIFI_MULTICAST_STATE">CHANGE_WIFI_MULTICAST_STATE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بالدخول إلى حالة الاتصال المتعدد للشبكة اللاسلكية Wi-Fi Multicast mode</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CHANGE_WIFI_STATE">CHANGE_WIFI_STATE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتغير حالة الاتصال بالشبكة اللاسلكية</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CLEAR_APP_CACHE">CLEAR_APP_CACHE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بمسح ملفات الخابية Cache لكافة التطبيقات المحملة على الجهاز.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CLEAR_APP_USER_DATA">CLEAR_APP_USER_DATA</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بمسح معلومات المستخدم.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#CONTROL_LOCATION_UPDATES">CONTROL_LOCATION_UPDATES</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتفعيل أو إلغاء التفعيل لتنبيهات المكان في الراديو.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#DELETE_PACKAGES">DELETE_PACKAGES</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بمسح الحزم.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#FLASHLIGHT">FLASHLIGHT</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح بالتحكم بضوء الفلاش</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#GET_ACCOUNTS">GET_ACCOUNTS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بالدخول إلى قائمة الحسابات في الجهاز</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#GET_PACKAGE_SIZE">GET_PACKAGE_SIZE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بمعرفة حجم الحزمة الخاصة بأي تطبيق</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#GET_TASKS">GET_TASKS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بمعرفة المهام التي تعمل حالياً مع معلومات لكل مهمة</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#INJECT_EVENTS">INJECT_EVENTS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بإدخال أوامر معينة (ضغطة زر، لمس الشاشة) برمجياً (أي ليس من قبل المستخدم).</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#INTERNET">INTERNET</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق باستعمال الانترنت</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#KILL_BACKGROUND_PROCESSES">KILL_BACKGROUND_PROCESSES</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بإنهاء الخدمات التي تعمل في الخلفية واستدعاء دالة<code> </code><em><a href="http://developer.android.com/reference/android/app/ActivityManager.html#killBackgroundProcesses%28java.lang.String%29">killBackgroundProcesses(String)</a></em>.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#MANAGE_ACCOUNTS">MANAGE_ACCOUNTS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بالتحكم بالحسابات في الجهاز</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#MODIFY_AUDIO_SETTINGS">MODIFY_AUDIO_SETTINGS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتعديل الصوت في الجهاز</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#MODIFY_PHONE_STATE">MODIFY_PHONE_STATE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتعديل حالة الجهاز</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#PROCESS_OUTGOING_CALLS">PROCESS_OUTGOING_CALLS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بمراقبة، تعديل أو إلغاء الاتصالات</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#READ_CALENDAR">READ_CALENDAR</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بقراءة معلومات التقويم</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#READ_CONTACTS">READ_CONTACTS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بقراءة جهات الاتصال</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#READ_HISTORY_BOOKMARKS">READ_HISTORY_BOOKMARKS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بقراءة (وليس إضافة) تاريخ المتصفح والعلامات المرجعية</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#READ_INPUT_STATE">READ_INPUT_STATE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بقراءة حالة مفاتيح الكتابة</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE">READ_PHONE_STATE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بقراءة حالة الجهاز</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#READ_PROFILE">READ_PROFILE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بقراءة معلومات المستخدم.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#READ_SMS">READ_SMS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بقراءة الرسائل النصية SMS</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#READ_SOCIAL_STREAM">READ_SOCIAL_STREAM</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بقراءة المشاركات الاجتماعية للمستخدم.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#RECEIVE_MMS">RECEIVE_MMS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بمراقبة رسائل الملتيميدا القادمة لتسجيلها أو التحكم بها.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#RECEIVE_SMS">RECEIVE_SMS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بمراقبة الرسائل النصية القادمة لتسجيلها أو التحكم بها.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#RECORD_AUDIO">RECORD_AUDIO</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتسجيل الصوت.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#SEND_SMS">SEND_SMS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بإرسائل رسائل نصية</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#SET_TIME">SET_TIME</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتغيير الوقت</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#SET_WALLPAPER">SET_WALLPAPER</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتغير صورة الخلفية</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#STATUS_BAR">STATUS_BAR</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بفتح، إغلاق أو تعطيل شريط التنبيهات والأيقونات الموجودة داخله.</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#VIBRATE">VIBRATE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق باستعمال الرجّاج (Vibrator)</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#WAKE_LOCK">WAKE_LOCK</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق باستعمال  PowerManager WakeLocks  لمنع الجهاز من الدخول إلى وضع الاستعداد، أو إيقاف المعالج (في حالة أردت تشغيل ملف صوتي مثلاً).</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#WRITE_CALENDAR">WRITE_CALENDAR</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بالكتابة في تقويم المستخدم</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#WRITE_CONTACTS">WRITE_CONTACTS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بإضافة معلومات إلى جهات الإتصال</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE">WRITE_EXTERNAL_STORAGE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بإضافة بيانات إلى الذاكرة الخارجية للجهاز</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#WRITE_HISTORY_BOOKMARKS">WRITE_HISTORY_BOOKMARKS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بإضافة معلومات إلى تاريخ المتصفح أو العلامات المرجعية</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#WRITE_PROFILE">WRITE_PROFILE</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بالكتابة في معلومات المستخدم</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#WRITE_SETTINGS">WRITE_SETTINGS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بتعديل إعدادات النظام</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#WRITE_SMS">WRITE_SMS</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بكتابة رسائل نصية</p>
</td>
</tr>
<tr>
<td valign="top" width="281"><a href="http://developer.android.com/reference/android/Manifest.permission.html#WRITE_SOCIAL_STREAM">WRITE_SOCIAL_STREAM</a></td>
<td valign="top" width="308">
<p dir="RTL">السماح للتطبيق بالكتابة في الشبكات الاجتماعية الخاصة بالمستخدم.</p>
</td>
</tr>
</tbody>
</table>
<p style="direction: rtl;"><span style="font-family: Verdana, Arial, Helvetica, sans-serif;"><span style="font-size: 11px; line-height: normal;">وأخيراً يمكن استعمال هذا الكود داخل ملف AndroidManfiest.xml لطلب التصاريح، حيث يحتوي على معظم التصاريح:</span></span></p>
<pre class="brush: xml; title: ; notranslate">
&lt;uses-permission android:name=&quot;android.permission.ACCESS_CHECKIN_PROPERTIES&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.ACCESS_COARSE_LOCATION&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.ACCESS_FINE_LOCATION&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.ACCESS_LOCATION_EXTRA_COMMANDS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.ACCESS_MOCK_LOCATION&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.ACCESS_NETWORK_STATE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.ACCESS_SURFACE_FLINGER&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.ACCESS_WIFI_STATE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.ACCOUNT_MANAGER&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.AUTHENTICATE_ACCOUNTS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BATTERY_STATS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BIND_APPWIDGET&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BIND_DEVICE_ADMIN&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BIND_INPUT_METHOD&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BIND_REMOTEVIEWS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BIND_WALLPAPER&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BLUETOOTH&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BLUETOOTH_ADMIN&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BRICK&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BROADCAST_PACKAGE_REMOVED&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BROADCAST_SMS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BROADCAST_STICKY&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.BROADCAST_WAP_PUSH&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.CALL_PHONE&quot;/&gt;
&lt;uses-permission android:name=&quot;android.permission.CALL_PRIVILEGED&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.CAMERA&quot;/&gt;
&lt;uses-permission android:name=&quot;android.permission.CHANGE_COMPONENT_ENABLED_STATE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.CHANGE_CONFIGURATION&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.CHANGE_NETWORK_STATE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.CHANGE_WIFI_MULTICAST_STATE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.CHANGE_WIFI_STATE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.CLEAR_APP_CACHE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.CLEAR_APP_USER_DATA&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.CONTROL_LOCATION_UPDATES&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.DELETE_CACHE_FILES&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.DELETE_PACKAGES&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.DEVICE_POWER&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.DIAGNOSTIC&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.DISABLE_KEYGUARD&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.DUMP&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.EXPAND_STATUS_BAR&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.FACTORY_TEST&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.FLASHLIGHT&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.FORCE_BACK&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.GET_ACCOUNTS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.GET_PACKAGE_SIZE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.GET_TASKS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.GLOBAL_SEARCH&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.HARDWARE_TEST&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.INJECT_EVENTS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.INSTALL_LOCATION_PROVIDER&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.INSTALL_PACKAGES&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.INTERNAL_SYSTEM_WINDOW&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.INTERNET&quot;/&gt;
&lt;uses-permission android:name=&quot;android.permission.KILL_BACKGROUND_PROCESSES&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.MANAGE_ACCOUNTS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.MANAGE_APP_TOKENS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.MASTER_CLEAR&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.MODIFY_AUDIO_SETTINGS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.MODIFY_PHONE_STATE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.MOUNT_FORMAT_FILESYSTEMS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.MOUNT_UNMOUNT_FILESYSTEMS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.NFC&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.PROCESS_OUTGOING_CALLS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.READ_CALENDAR&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.READ_CONTACTS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.READ_FRAME_BUFFER&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.READ_HISTORY_BOOKMARKS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.READ_INPUT_STATE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.READ_LOGS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.READ_PHONE_STATE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.READ_SMS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.READ_SYNC_SETTINGS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.READ_SYNC_STATS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.REBOOT&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.RECEIVE_BOOT_COMPLETED&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.RECEIVE_MMS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.RECEIVE_SMS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.RECEIVE_WAP_PUSH&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.RECORD_AUDIO&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.REORDER_TASKS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.RESTART_PACKAGES&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SEND_SMS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_ACTIVITY_WATCHER&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_ALARM&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_ALWAYS_FINISH&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_ANIMATION_SCALE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_DEBUG_APP&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_ORIENTATION&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_POINTER_SPEED&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_PROCESS_LIMIT&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_TIME&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_TIME_ZONE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_WALLPAPER&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SET_WALLPAPER_HINTS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SIGNAL_PERSISTENT_PROCESSES&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.STATUS_BAR&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SUBSCRIBED_FEEDS_READ&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SUBSCRIBED_FEEDS_WRITE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.SYSTEM_ALERT_WINDOW&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.UPDATE_DEVICE_STATS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.USE_CREDENTIALS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.USE_SIP&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.VIBRATE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WAKE_LOCK&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WRITE_APN_SETTINGS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WRITE_CALENDAR&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WRITE_CONTACTS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WRITE_GSERVICES&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WRITE_HISTORY_BOOKMARKS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WRITE_SECURE_SETTINGS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WRITE_SETTINGS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WRITE_SMS&quot; /&gt;
&lt;uses-permission android:name=&quot;android.permission.WRITE_SYNC_SETTINGS&quot; /&gt;
</pre>
<pre style="direction: rtl;">أتمنى أن أسمع آراءكم وتعليقاتكم على المدونة</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-scraps.com/2012/01/%d8%b3%d9%84%d8%b3%d9%84%d8%a9-%d8%aa%d8%b9%d9%84%d9%85-%d8%a7%d9%84%d8%a3%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af-%e2%80%93-%d8%a7%d9%84%d8%ad%d9%84%d9%82%d8%a9-%d8%a7%d9%84%d8%b3%d8%a7%d8%af%d8%b3%d8%a9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>إصدار النسخة 1.8 من تطبيق iAndroidQuran مع خاصية دعم الأجهزة اللوحية</title>
		<link>http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/</link>
		<comments>http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 08:51:13 +0000</pubDate>
		<dc:creator>عبد القهار الحسني</dc:creator>
				<category><![CDATA[أندرويد]]></category>
		<category><![CDATA[مميز]]></category>

		<guid isPermaLink="false">http://www.tech-scraps.com/?p=542</guid>
		<description><![CDATA[السلام عليكم
بعد أسبوعين من إصدار النسخة 1.7 من تطبيق iAndroidQuran قمت بإطلاق النسخة التالية 1.8 لإصلاح بعض الأخطاء وإضافة ميزات جديدة التطبيق. السبب في إطلاق النسخة الجديدة بالشكل السريع هو حصول خطأ عند تحميله على نسخة قرص العسل والآيس كريم ساندويتش من الأندرويد، وفي هذه النسخة تم إصلاح هذا الخلل حيث أصبح التطبيق متوافقاً مع جميع نسخ الأندرويد الاعلى من 1.5. الميزة الاخرى التي تمت إضافتها هي إمكانية التحكم بحجم [...]]]></description>
			<content:encoded><![CDATA[<p style="direction: rtl;">السلام عليكم</p>
<p style="direction: rtl;">بعد أسبوعين من إصدار النسخة 1.7 من تطبيق iAndroidQuran قمت بإطلاق النسخة التالية 1.8 لإصلاح بعض الأخطاء وإضافة ميزات جديدة التطبيق. السبب في إطلاق النسخة الجديدة بالشكل السريع هو حصول خطأ عند تحميله على نسخة قرص العسل والآيس كريم ساندويتش من الأندرويد، وفي هذه النسخة تم إصلاح هذا الخلل حيث أصبح التطبيق متوافقاً مع جميع نسخ الأندرويد الاعلى من 1.5. الميزة الاخرى التي تمت إضافتها هي إمكانية التحكم بحجم الخط من خلال شاشة عرض السورة دون الحاجة للرجوع إلى شاشة الخيارات وهذا لتسهيل عملية التحكم بحجم الخط. الميزة الأهم هو تحسين الشاشة الرئيسية للتطبيق حيث أصبح تعمل بشكل أسرع وأصبح بالإمكان بداية التلاوة من خلالها. أخيراً، تم إرجاع خيار دعم اللغة العربية حتى يتم استعماله فقط عند الحاجة وليس دائماً (حيث سبب بعض المشاكل في النسخة السابقة).</p>
<p style="direction: rtl;">الخبر الأخير هو أنه تم تحميل ما يقارب 200 جيجا بايت من الداتا على ما يقارب 800000 من الملفات الصوتية للتلاوات على مدى الأسبوعين الماضيين.</p>
<p style="direction: rtl;">لتحميل التطبيق:</p>
<p style="direction: rtl;"><a title="https://market.android.com/details?id=com.iandroid.quran" href="https://market.android.com/details?id=com.iandroid.quran">https://market.android.com/details?id=com.iandroid.quran<br />
</a></p>
<p style="direction: rtl;">أو عمل سكان لهذه الصورة:</p>
<div id="attachment_60" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.tech-scraps.com/wp-content/uploads/2011/10/chart.png"><img class="size-full wp-image-60" title="كود تحميل التطبيق" src="http://www.tech-scraps.com/wp-content/uploads/2011/10/chart.png" alt="كود تحميل التطبيق" width="150" height="150" /></a><p class="wp-caption-text">كود تحميل التطبيق</p></div>
<p style="direction: rtl;">صور التطبيق:</p>

<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/display-surah-tab/' title='display-surah-tab'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2012/01/display-surah-tab-150x150.png" class="attachment-thumbnail" alt="display-surah-tab" title="display-surah-tab" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/display-surah-tab1/' title='display-surah-tab1'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2012/01/display-surah-tab1-150x150.png" class="attachment-thumbnail" alt="display-surah-tab1" title="display-surah-tab1" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/main-page-2/' title='main-page'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2012/01/main-page-150x150.png" class="attachment-thumbnail" alt="main-page" title="main-page" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/preferences/' title='preferences'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2012/01/preferences-150x150.png" class="attachment-thumbnail" alt="preferences" title="preferences" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/spalsh-screen/' title='spalsh-screen'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2012/01/spalsh-screen-150x150.png" class="attachment-thumbnail" alt="spalsh-screen" title="spalsh-screen" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/surah-display-language/' title='surah-display-language'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2012/01/surah-display-language-150x150.png" class="attachment-thumbnail" alt="surah-display-language" title="surah-display-language" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/surah-display-recitation-list/' title='surah-display-recitation-list'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2012/01/surah-display-recitation-list-150x150.png" class="attachment-thumbnail" alt="surah-display-recitation-list" title="surah-display-recitation-list" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/surah-display-size/' title='surah-display-size'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2012/01/surah-display-size-150x150.png" class="attachment-thumbnail" alt="surah-display-size" title="surah-display-size" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/surah-display-recitation-list1/' title='surah-display-recitation-list1'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2012/01/surah-display-recitation-list1-150x150.png" class="attachment-thumbnail" alt="surah-display-recitation-list1" title="surah-display-recitation-list1" /></a>

<p style="direction: rtl;">صفحة التطبيق على الفيسبوك:</p>
<p><iframe style="border: none; overflow: hidden; width: 620px; height: 258px;" src="//www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2FiAndroidQuran&amp;width=520&amp;height=258&amp;colorscheme=light&amp;show_faces=true&amp;border_color&amp;stream=false&amp;header=false&amp;appId=178938092198221" frameborder="0" scrolling="no" width="620" height="240"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-8-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%af%d8%b9%d9%85-%d8%a7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>إصدار النسخة 1.7 من تطبيق iAndroidQuran مع خاصية الترتيل لأكثر من 20 مقرئاً</title>
		<link>http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-7-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%b1/</link>
		<comments>http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-7-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%b1/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 21:20:46 +0000</pubDate>
		<dc:creator>عبد القهار الحسني</dc:creator>
				<category><![CDATA[أندرويد]]></category>
		<category><![CDATA[مميز]]></category>
		<category><![CDATA[iAndroidQuran]]></category>
		<category><![CDATA[تطبيق القران]]></category>

		<guid isPermaLink="false">http://www.tech-scraps.com/?p=467</guid>
		<description><![CDATA[السلام عليكم
بعد أن أصدرت النسخة الأخيرة من التطبيق مع خاصية العلامات المرجعية، كانت الخاصية الأكثر طلباً هي إضافة الترتيل للتطبيق. كانت المشكلة الأكبر هي إيجاد سيرفر يتحمل تنزيل الملفات الكثيرة ذات الحجم الكبير (ملفات كل تلاوة أصبحت حوالي 2.5 جيجا بايت لضمان الدقة العالية). وقد تمكنت من استحصال سيرفر يحتوي على خاصية الترافيك الغير محدود مع مساحة تخزينية قدرها 200 جيجا بايت، وهذا يكفي لتخزين ملفات الترتيل. حاولت أن اجعل استعمال الترتيل من [...]]]></description>
			<content:encoded><![CDATA[<p style="direction: rtl;">السلام عليكم</p>
<p style="direction: rtl;">بعد أن أصدرت النسخة الأخيرة من التطبيق مع خاصية العلامات المرجعية، كانت الخاصية الأكثر طلباً هي إضافة الترتيل للتطبيق. كانت المشكلة الأكبر هي إيجاد سيرفر يتحمل تنزيل الملفات الكثيرة ذات الحجم الكبير (ملفات كل تلاوة أصبحت حوالي 2.5 جيجا بايت لضمان الدقة العالية). وقد تمكنت من استحصال سيرفر يحتوي على خاصية الترافيك الغير محدود مع مساحة تخزينية قدرها 200 جيجا بايت، وهذا يكفي لتخزين ملفات الترتيل. حاولت أن اجعل استعمال الترتيل من السهولة بمكان حيث يتم التحكم بالتشغيل والإيقاف من صفحة عرض السورة مباشرة.</p>
<p style="direction: rtl;">في البداية قم باختيار المقرئ من شريط الأدوات أسفل السورة، وعند ذلك سوف يتحقق التطبيق من أن كافة الملفات الخاصة بهذه السورئ للمقرئ المطلوب موجودة. إذا لم تكن هذه الملفات الموجودة سوف يتم عرض خيارين: تحميل التلاوة للقرآن كله، أو تحميل التلاوة للسورة المعروضة فقط. طبعاً، اختيار تحميل تلاوة السورة المعروضة فقط هو أسرع من الخيار الأول.</p>
<blockquote>
<p style="direction: rtl;">ملاحظة مفيدة: يمكنك اختيار تحميل السورة المعروضة ومن ثم الاستماع عليها، وبعد ذلك اختر الخيار الأول فيتم تحميل القرآن بكامله وأنت تستمع إلى السورة المطلوبة.</p>
</blockquote>
<p style="direction: rtl;">الطريقة الأخرى لظهور خيارات التحميل هو عند عند الضغط على أية آية داخل السورة المعروضة. سوف يتأكد التطبيق ما إذا كانت ملفات التلاوة موجودة وعندها يتم عرض شريط التلاوة، إما إذا لم تكن الملفات موجودة فسوف يتم عرض خيارات التحميل للتلاوة.</p>
<p style="direction: rtl;">في حالة تحميل ملفات التلاوة أو الاستماع لها يمكن إخفاء التطبيق بالكامل وتصفح تطبيقات آخرى أو عمل أي شيء آخر على الجهاز. عند الرغبة في إيقاف الترتيل أو التحميل يمكن الضغط على التنبيه الموجود في شريط التنبيهات ومنها يمكنك التحكم بالتلاوة أو تحميل الملفات.</p>
<p style="direction: rtl;">يحتوي التطبيق أيضاً على خاصتين مهمتين بالنسبة لتحميل التلاوات:</p>
<p style="direction: rtl;">الأولى: تمت إضافة خيار في الإعدادات لتفعيل تحميل الملفات عندما يكون هناك اتصال بشبكة لاسلكية فقط وذلك لتفادي استعمال شبكة الموبايل للتحميل. والثانية: هو إمكانية استعادة التحميل من المكان الذي توقف فيه آخر مرة دون الحاجة لتحميل الملفات جميعها من جديد. كل ما عليك فعله هو اختيار خيار التحميل الذي تريد (تحميل القرآن بأكمله، أو السورة فقط) وسوف يقوم التطبيق بالتحميل من آخر نقطة تم التوقف عندها.</p>
<p style="direction: rtl;">التحديث المهم الآخر هو أنه أصبح بالإمكانية الآن قراءة نص القرآن بشكل كامل في الأجهزة التي لا تدعم العربية، وهذه الخاصية تدعم كافة الخطوط المتوفرة للنص القرآني.</p>
<p style="direction: rtl;">بالإضافة إلى هذه التغييرات قمت بتصميم واجهة جديدة للتطبيق تظهر في بدايته وتعتمد على الكود بالكامل من دون استعمال الصور، وذلك لتناسب جميع أحجام الشاشات للأجهزة التي تستعمل التطبيق.</p>
<p style="direction: rtl;">وإن شاء الله سوف تكون الخطوة القادمة هي تحسين مظهر التطبيق العام وإضافة ثيمات له، وأيضاً جعل تغيير الخيارات متاحاً للمستخدم أثناء عرض السورة دون الحاجة للذهاب إلى شاشة الخيارات كتغيير نوع وحجم الخط وإضاءة الشاشة.</p>
<p style="direction: rtl;"><strong>ملاحظة أخيرة:</strong>  في حالة التحديث من نسخة سابقة وحصل خطأ في البرنامج، قبل بحذفه من الجهاز وإعادة تنصيبه، وسوف تنحل المشكلة إن شاء الله.</p>
<p style="direction: rtl;">صور من النسخة الجديدة:</p>

<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-7-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%b1/arabic-display-surah-reciters-menu/' title='arabic-display-surah-reciters-menu'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2011/12/arabic-display-surah-reciters-menu-150x150.png" class="attachment-thumbnail" alt="arabic-display-surah-reciters-menu" title="arabic-display-surah-reciters-menu" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-7-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%b1/arabic-download-recitation/' title='arabic-download-recitation'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2011/12/arabic-download-recitation-150x150.png" class="attachment-thumbnail" alt="arabic-download-recitation" title="arabic-download-recitation" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-7-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%b1/arabic-download-recitation-confirm/' title='arabic-download-recitation-confirm'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2011/12/arabic-download-recitation-confirm-150x150.png" class="attachment-thumbnail" alt="arabic-download-recitation-confirm" title="arabic-download-recitation-confirm" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-7-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%b1/arabic-download-recitation-notification/' title='arabic-download-recitation-notification'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2011/12/arabic-download-recitation-notification-150x150.png" class="attachment-thumbnail" alt="arabic-download-recitation-notification" title="arabic-download-recitation-notification" /></a>
<a href='http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-7-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%b1/arabic-download-recitation-play/' title='arabic-download-recitation-play'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2011/12/arabic-download-recitation-play-150x150.png" class="attachment-thumbnail" alt="arabic-download-recitation-play" title="arabic-download-recitation-play" /></a>

<p style="direction: rtl;">لتحميل النسخة من هذا الرابط:</p>
<p style="direction: rtl;"><a href="https://market.android.com/details?id=com.iandroid.quran&amp;feature=search_result">https://market.android.com/details?id=com.iandroid.quran&amp;feature=search_result</a></p>
<p style="direction: rtl;">أو عن طريق عمل سكان لهذا الكود:</p>
<div id="attachment_60" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.tech-scraps.com/wp-content/uploads/2011/10/chart.png"><img class="size-full wp-image-60" title="كود تحميل التطبيق" src="http://www.tech-scraps.com/wp-content/uploads/2011/10/chart.png" alt="كود تحميل التطبيق" width="150" height="150" /></a><p class="wp-caption-text">كود تحميل التطبيق</p></div>
<p style="direction: rtl;">أتمنى أن تكون هذه التحديثات قد أعجبتكم، وأرجو سماع آراءكم حولها.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-scraps.com/2012/01/%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-%d8%a7%d9%84%d9%86%d8%b3%d8%ae%d8%a9-1-7-%d9%85%d9%86-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-iandroidquran-%d9%85%d8%b9-%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%b1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>نظرة على مشغّلات الاندرويد &#8211; 3 &#8211; مشغّل Launcher 7</title>
		<link>http://www.tech-scraps.com/2011/12/%d9%86%d8%b8%d8%b1%d8%a9-%d8%b9%d9%84%d9%89-%d9%85%d8%b4%d8%ba%d9%91%d9%84%d8%a7%d8%aa-%d8%a7%d9%84%d8%a7%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af-3-%d9%85%d8%b4%d8%ba%d9%91%d9%84-launcher-7/</link>
		<comments>http://www.tech-scraps.com/2011/12/%d9%86%d8%b8%d8%b1%d8%a9-%d8%b9%d9%84%d9%89-%d9%85%d8%b4%d8%ba%d9%91%d9%84%d8%a7%d8%aa-%d8%a7%d9%84%d8%a7%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af-3-%d9%85%d8%b4%d8%ba%d9%91%d9%84-launcher-7/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 08:37:56 +0000</pubDate>
		<dc:creator>عبد القهار الحسني</dc:creator>
				<category><![CDATA[أندرويد]]></category>
		<category><![CDATA[مميز]]></category>
		<category><![CDATA[مراجعات]]></category>

		<guid isPermaLink="false">http://www.tech-scraps.com/?p=472</guid>
		<description><![CDATA[قابلية تطويع الأندرويد هي من أهم الخواص التي جعلته مشهوراً ومحبوباً من قبل الكثير من المطورين، ومشغّل W7 هو أكبر دليل على هذا. حيث من خلال هذا المشغل يتحول الجهاز إلى نظام شبيه بنظام ويندوز فون Windows Phone. يقدم المشغل واجهة متقنة ومطابقة لواجهة الويندوز فون مع أداء سريع وفعال. تعمد الواجهة على نظام الألواح Tiles والذي أنشأته مايكروسوفت لنظام ويندوز فون. التحكم بالألواح مميز وسلس، حيث يمكن تغييرها من خلال الضغط [...]]]></description>
			<content:encoded><![CDATA[<p dir="RTL">قابلية تطويع الأندرويد هي من أهم الخواص التي جعلته مشهوراً ومحبوباً من قبل الكثير من المطورين، ومشغّل W7 هو أكبر دليل على هذا. حيث من خلال هذا المشغل يتحول الجهاز إلى نظام شبيه بنظام ويندوز فون Windows Phone. يقدم المشغل واجهة متقنة ومطابقة لواجهة الويندوز فون مع أداء سريع وفعال. تعمد الواجهة على نظام الألواح Tiles والذي أنشأته مايكروسوفت لنظام ويندوز فون. التحكم بالألواح مميز وسلس، حيث يمكن تغييرها من خلال الضغط الطويل Long Click على أي لوح لتظهر خيارات التحرير عليه. يمكن أيضاً إضافة لوح لكافة قطع الأندرويد Widgets من خلال الضغط على زر القائمة في جهازك. ما يميز المشغّل أيضاً هو إمكانية عرضه بالوضع الطولي أو العرضي وهو خاصية لا أعتقد أنها موجودة في ويندوز فون. يمكن إيضاً إضافة صورة كخلفية للمشغّل وهي خاصية لا اعتقد أنها موجودة في نظام ويندوز فون. (إذا كنت تملك جهاز ويندوز فون أرجو إبداء رأيك في هذا الأمر).</p>
<p dir="RTL">الحركات animations الخاصة بالمشغّل متقنة للغاية بحيث تبدو مطابقة لنظام الويندوز فون.الخيارات الخاصة بالمشغّل هي الأخرى مشابهة لنظام الخيارات في الويندوز فون من حيث الشكل والانتقال بين صفحات الخيارات إلا أنها لا تبدو واضحة عند تصفحها خصوصاً لمن تعود على نظام الإعدادات في الأندرويد بشكل عام.</p>
<p dir="RTL">ما يعيب المشغّل هو وجود الإعلانات داخله حيث أن هناك نسختين منه الأول مجانية وبها الإعلانات والأخرى مدفوعة خالية من الإعلانات. هذه الخطوة وإن كانت حقاً مشروعاً لمطور المشغّل إلا أنها لا تساعد على انتشار المشغّل بالشكل المطلوب. الأمر الآخر هو أن إضافة القطع Widgets داخل الألواح Tiles غير عملي، حيث تبدو قطع الأندرويد مضغوطة وغير واضحة. هذا بالإضافة إلى أن الألواح بشكل عام هي أمر غير عملي من وجهة نظري. فنظام القطع Widgets يتفوق عليه بعدة أشواط حيث تقدم القطع واجهات مميزة وسهلة الاستعمال وتغنيك عن الدخول إلى التطبيقات في كثير من الأحيان. أما الألواح فهي عبارة عن مربعات تظهر لك تنبيهات أو صور أو ما شابه ذلك ولكن يجب استعمال التطبيق المتعلق بها للقيام بالمهام المختلفة. المشكلة الأخرى في المشغّل هي قلة الدعم المقدم له، فلا توجد هناك ثيمات أو إضافات خاصة به مقدمة من المطوّر الأصلي أو من مطورين آخرين، والسبب الأساسي في هذا هو عدم تجهيز المشغّل بالأساس بهذه الخاصية.</p>
<p dir="RTL">الخلاصة هو أن مشغّل Launcher 7 هو دليل على حيوية نظام الأندرويد وقابليته للتطويع أكثر من كونه مشغلاً عملياً يمكن الاستغناء به عن المشغل الأصلي للأندرويد. فهو وإن كان يقدم تحكماً سلساً بالألواح والإعدادات إلا أنها لا يقدم واجهة مميزة أكثر من واجهة الأندرويد نفسها.</p>
<p dir="RTL"><a href="http://www.tech-scraps.com/wp-content/uploads/2011/12/w7-home.png">
<a href='http://www.tech-scraps.com/2011/12/%d9%86%d8%b8%d8%b1%d8%a9-%d8%b9%d9%84%d9%89-%d9%85%d8%b4%d8%ba%d9%91%d9%84%d8%a7%d8%aa-%d8%a7%d9%84%d8%a7%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af-3-%d9%85%d8%b4%d8%ba%d9%91%d9%84-launcher-7/w7-app-draw/' title='w7-app-draw'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2011/12/w7-app-draw-150x150.png" class="attachment-thumbnail" alt="صفحة التطبيقات في مشغل 7" title="w7-app-draw" /></a>
<a href='http://www.tech-scraps.com/2011/12/%d9%86%d8%b8%d8%b1%d8%a9-%d8%b9%d9%84%d9%89-%d9%85%d8%b4%d8%ba%d9%91%d9%84%d8%a7%d8%aa-%d8%a7%d9%84%d8%a7%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af-3-%d9%85%d8%b4%d8%ba%d9%91%d9%84-launcher-7/w7-home/' title='w7-home'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2011/12/w7-home-150x150.png" class="attachment-thumbnail" alt="الصفحة الرئيسية في مشغل 7" title="w7-home" /></a>
<a href='http://www.tech-scraps.com/2011/12/%d9%86%d8%b8%d8%b1%d8%a9-%d8%b9%d9%84%d9%89-%d9%85%d8%b4%d8%ba%d9%91%d9%84%d8%a7%d8%aa-%d8%a7%d9%84%d8%a7%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af-3-%d9%85%d8%b4%d8%ba%d9%91%d9%84-launcher-7/w7-options-menu/' title='w7-options-menu'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2011/12/w7-options-menu-150x150.png" class="attachment-thumbnail" alt="الخيارات في الصفحة الرئيسية في مشغل 7" title="w7-options-menu" /></a>
<a href='http://www.tech-scraps.com/2011/12/%d9%86%d8%b8%d8%b1%d8%a9-%d8%b9%d9%84%d9%89-%d9%85%d8%b4%d8%ba%d9%91%d9%84%d8%a7%d8%aa-%d8%a7%d9%84%d8%a7%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af-3-%d9%85%d8%b4%d8%ba%d9%91%d9%84-launcher-7/w7-settings/' title='w7-settings'><img width="150" height="150" src="http://www.tech-scraps.com/wp-content/uploads/2011/12/w7-settings-150x150.png" class="attachment-thumbnail" alt="صفحة الخيارات في مشغل 7" title="w7-settings" /></a>
<br />
</a></p>
<p dir="RTL">ما رأيك أنت؟ هل تفضل استعمال هذا المشغّل على المشغّل الأصلي الخاص بجهازك؟</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-scraps.com/2011/12/%d9%86%d8%b8%d8%b1%d8%a9-%d8%b9%d9%84%d9%89-%d9%85%d8%b4%d8%ba%d9%91%d9%84%d8%a7%d8%aa-%d8%a7%d9%84%d8%a7%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af-3-%d9%85%d8%b4%d8%ba%d9%91%d9%84-launcher-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

