<?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>Ardroid &#124; أردرويد &#187; وائل العلواني</title> <atom:link href="http://ardroid.com/author/wael-alwani/feed/" rel="self" type="application/rss+xml" /><link>http://ardroid.com</link> <description>أندرويد للمستخدمين العرب</description> <lastBuildDate>Fri, 10 Feb 2012 17:25:29 +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>وعاد أنس</title><link>http://ardroid.com/2011/08/28/return-of-the-hero/</link> <comments>http://ardroid.com/2011/08/28/return-of-the-hero/#comments</comments> <pubDate>Sun, 28 Aug 2011 12:48:12 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[أخبار أندرويد]]></category><guid
isPermaLink="false">http://ardroid.com/?p=9653</guid> <description><![CDATA[نعلن اليوم خبرا مفرحا جدا بعد سلسلة من الأخبار السيئة وهو خبر عودة صديقنا أنس معراوي. نحمد الله على سلامته.. ونعدكم بعودة قوية لموقع أردرويد.]]></description> <content:encoded><![CDATA[<p>نعلن اليوم خبرا مفرحا جدا بعد سلسلة من الأخبار السيئة وهو خبر عودة صديقنا أنس معراوي.</p><p>نحمد الله على سلامته.. ونعدكم بعودة قوية لموقع أردرويد.</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/08/28/return-of-the-hero/feed/</wfw:commentRss> <slash:comments>172</slash:comments> </item> <item><title>لعبة Fort Escape بأيدٍ عربية</title><link>http://ardroid.com/2011/07/25/fort-escap/</link> <comments>http://ardroid.com/2011/07/25/fort-escap/#comments</comments> <pubDate>Mon, 25 Jul 2011 06:57:52 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[ألعاب]]></category> <category><![CDATA[android games]]></category> <category><![CDATA[fort escape]]></category> <category><![CDATA[ألعاب أندرويد]]></category> <category><![CDATA[محمد الأرياني]]></category><guid
isPermaLink="false">http://ardroid.com/?p=9518</guid> <description><![CDATA[أطلق المطور محمد الأرياني لعبة ممتعة باسم Fort Escape . وهي لعبة مجانية وسيتم اصدار نسخة عربية منها قريبا. استغرق تطوير اللعبة ٣ أسابيع وهي نتاج جهد فردي قام به محمد بالكامل متبعا اسلوبا في التطوير لم أقدر إمكانياته المتقدمة شخصيا، ولكن محمد استخدم هذا الأسلوب وخرج بنتيجة رائعة فعلا. سنعرف المزيد عن اللعبة وطريقة تطويرها في&#8230; <a
href="http://ardroid.com/2011/07/25/fort-escap/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="350" height="350" src="http://ardroid.com/wp-content/uploads/2011/07/charto.png" class="attachment-large" alt="charto" title="charto" /><p>أطلق المطور <a
href="http://twitter.com/#!/mlariani">محمد الأرياني</a> لعبة ممتعة باسم <a
href="https://market.android.com/details?id=com.mlariani.android.app.main">Fort Escape</a> . وهي لعبة مجانية وسيتم اصدار نسخة عربية منها قريبا.</p><p>استغرق تطوير اللعبة ٣ أسابيع وهي نتاج جهد فردي قام به محمد بالكامل متبعا اسلوبا في التطوير لم أقدر إمكانياته المتقدمة شخصيا، ولكن محمد استخدم هذا الأسلوب وخرج بنتيجة رائعة فعلا. سنعرف المزيد عن اللعبة وطريقة تطويرها في لقاء سنجريه قريبا مع محمد. فانتظرونا!</p><p><a
href="http://ardroid.com/wp-content/uploads/2011/07/f-1024-01.jpeg" rel="lightbox[9518]"><img
class="aligncenter size-medium wp-image-9523" title="f-1024-01" src="http://ardroid.com/wp-content/uploads/2011/07/f-1024-01-300x146.jpg" alt="" width="300" height="146" /></a></p><p
style="text-align: center;"><a
href="http://ardroid.com/wp-content/uploads/2011/07/ss-800-0-0.jpeg" rel="lightbox[9518]"><img
class="aligncenter size-medium wp-image-9522" title="ss-800-0-0" src="http://ardroid.com/wp-content/uploads/2011/07/ss-800-0-0-300x180.jpg" alt="" width="300" height="180" /></a></p><p
style="text-align: center;"><a
href="http://ardroid.com/wp-content/uploads/2011/07/charto.png" rel="lightbox[9518]"><img
class="aligncenter size-medium wp-image-9526" title="charto" src="http://ardroid.com/wp-content/uploads/2011/07/charto-300x300.png" alt="" width="300" height="300" /></a></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/07/25/fort-escap/feed/</wfw:commentRss> <slash:comments>20</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/07/f-1024-0.jpeg" /> </item> <item><title>لقاء مع مطور الألعاب عبدالله حامد</title><link>http://ardroid.com/2011/07/17/indiesaudi/</link> <comments>http://ardroid.com/2011/07/17/indiesaudi/#comments</comments> <pubDate>Sun, 17 Jul 2011 16:29:14 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[ألعاب]]></category> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[Abdullah Hamed]]></category> <category><![CDATA[development]]></category> <category><![CDATA[Games]]></category> <category><![CDATA[graphic design]]></category> <category><![CDATA[اندرويد]]></category> <category><![CDATA[تصميم]]></category> <category><![CDATA[تطوير]]></category> <category><![CDATA[عبدالله حامد]]></category><guid
isPermaLink="false">http://ardroid.com/?p=9434</guid> <description><![CDATA[أجرينا لقاءً ممتعا مع مصمم ومطور الألعاب، عبدالله حامد، أجاب فيه على أسئلة تتعرض لثلاثة محاور: تطوير وتصميم الألعاب على الأندرويد. نماذج الربح من الألعاب والأنسب منها لمنطقتنا العربية. الجهود المبذولة في نشر ثقافة تطوير الألعاب. يمكنكم طرح أسئلتكم وسنقوم بتوصيلها للأخ عبدالله حامد ليجيب عليها. 1/2 2/2]]></description> <content:encoded><![CDATA[<img
width="200" height="200" src="http://ardroid.com/wp-content/uploads/2011/07/android-ar-in.jpg" class="attachment-large" alt="android-ar-in" title="android-ar-in" /><p>أجرينا لقاءً ممتعا مع مصمم ومطور الألعاب، <a
href="http://twitter.com/#!/indiesaudi">عبدالله حامد</a>، أجاب فيه على أسئلة تتعرض لثلاثة محاور: تطوير وتصميم الألعاب على الأندرويد. نماذج الربح من الألعاب والأنسب منها لمنطقتنا العربية. الجهود المبذولة في نشر ثقافة تطوير الألعاب.</p><p>يمكنكم طرح أسئلتكم وسنقوم بتوصيلها للأخ عبدالله حامد ليجيب عليها.</p><p>1/2</p><p><object
width="550" height="339" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="src" value="http://blip.tv/play/AYLIxwwC" /><param
name="wmode" value="transparent" /><param
name="allowscriptaccess" value="always" /><param
name="allowfullscreen" value="true" /><embed
width="550" height="339" type="application/x-shockwave-flash" src="http://blip.tv/play/AYLIxwwC" wmode="transparent" allowscriptaccess="always" allowfullscreen="true" /></object></p><p>2/2</p><p><object
width="550" height="339" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="src" value="http://blip.tv/play/AYLIxywC" /><param
name="wmode" value="transparent" /><param
name="allowscriptaccess" value="always" /><param
name="allowfullscreen" value="true" /><embed
width="550" height="339" type="application/x-shockwave-flash" src="http://blip.tv/play/AYLIxywC" wmode="transparent" allowscriptaccess="always" allowfullscreen="true" /></object></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/07/17/indiesaudi/feed/</wfw:commentRss> <slash:comments>26</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/07/android-ar-in.jpg" /> </item> <item><title>الحرية للمدون السوري أنس المعراوي</title><link>http://ardroid.com/2011/07/09/freeanas/</link> <comments>http://ardroid.com/2011/07/09/freeanas/#comments</comments> <pubDate>Sat, 09 Jul 2011 00:37:04 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[anas maarawi]]></category> <category><![CDATA[freeanas]]></category> <category><![CDATA[freedom]]></category> <category><![CDATA[أنس معراوي]]></category> <category><![CDATA[الحرية]]></category><guid
isPermaLink="false">http://ardroid.com/?p=9385</guid> <description><![CDATA[ربما تساءل بعضكم عن سر غياب صديقنا أنس معراوي الذي اعتدنا على مقالاته اليومية المتميزة على صفحات أردرويد.. اعتقل أنس معراوي تعسفياً يوم الجمعة 1-7-2011 في كفرسوسة, دمشق. ولا نعلم عنه شيئا حتى الآن. أنس المعراوي من خيرة الشباب السوريين وهو مدون ومطور ويب ومهتم بالبرمجيات مفتوحة المصدر ومؤسس موقع أردرويد. ساعدونا في الحملة التي&#8230; <a
href="http://ardroid.com/2011/07/09/freeanas/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="398" height="600" src="http://ardroid.com/wp-content/uploads/2011/07/d8a7d986d8b3-2-398x600.jpg" class="attachment-large" alt="d8a7d986d8b3-2" title="d8a7d986d8b3-2" /><p></p><p
dir="rtl">ربما تساءل بعضكم عن سر غياب صديقنا أنس معراوي الذي اعتدنا على مقالاته اليومية المتميزة على صفحات أردرويد.. اعتقل أنس معراوي تعسفياً يوم الجمعة 1-7-2011 في كفرسوسة, دمشق. ولا نعلم عنه شيئا حتى الآن.</p><p
dir="rtl">أنس المعراوي من خيرة الشباب السوريين وهو مدون ومطور ويب ومهتم بالبرمجيات مفتوحة المصدر ومؤسس موقع أردرويد.</p><p
dir="rtl"><a
rel="attachment wp-att-9387" href="http://ardroid.com/2011/07/09/freeanas/d8a7d986d8b3-2/"><img
class="aligncenter size-medium wp-image-9387" title="d8a7d986d8b3-2" src="http://ardroid.com/wp-content/uploads/2011/07/d8a7d986d8b3-2-199x300.jpg" alt="" width="199" height="300" /></a></p><p>ساعدونا في الحملة التي أطلقها المدونون والمدونات في سوريا للمطالبة بحرية زميلهم المعتقل أنس معراوي. نحن هنا نتضامن معه ونطالب السلطات السورية بإطلاق سراحه فوراً ودون تأخير تطبيقاً لرفع قانون الطوارئ.</p><p>موقع الحملة:</p><p><a
href="http://freeanas.wordpress.com/">http://freeanas.wordpress.com/</a></p><p>هاشتاغ تويتر</p><p><a
href="http://twitter.com/#!/search/%23freeanas">#freeAnas</a></p><p>الحملة على الفيس بوك:</p><p><a
href="http://on.fb.me/prD8zl">http://on.fb.me/prD8zl</a></p><p><strong>ساعدونا بالتصويت على الخبر لإبرازه في موقع Reddit</strong></p><p><strong><a
href="http://bit.ly/qYHGqM">http://bit.ly/qYHGqM</a></strong></p><p><a
href="http://ardroid.com/2011/07/09/freeanas/"><em>Click here to view the embedded video.</em></a></p><p>&nbsp;</p><p><strong>تحديث: لم نكن نريد تعطيل خاصية التعليقات لأننا نؤمن بحرية التعبير ونسعد بالرأي الذي يحترم الجميع وإن اختلفنا معه. ولكن للأسف بدرت بعض التعليقات الطائفية المسيئة جدا بالإضافة الى أخرى مليئة بالمزاودات والكراهية والإسفاف والتخوين والتعميم أو تزيد من تعقيد الأمور، ما أدى الى تحول المساحة المتاحة لمكان لإطلاق التهم والكلمات غير اللائقة بشكل يصعب علينا السماح به أو ضبطه. وبناء عليه، حذفنا التعليقات التي تندرج تحت ما قلناه في الأعلى، مع أسفنا مما حصل والتأكيد على أن الحملة التي أطلقناها من أجل حرية أنس غير مسؤولة عما ورد من بعض التعليقات. ونذكركم بأننا نطلب الحرية لأنس، وتعاونكم معه يكون بالتفاعل مع قضيته ونشرها والدعاء له، والابتعاد عما يزيد الأمور تعقيدا.</strong></p><p><strong>نشكر تفهمكم.</strong></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/07/09/freeanas/feed/</wfw:commentRss> <slash:comments>66</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/07/d8a7d986d8b3-2-200x200.jpg" /> </item> <item><title>دروس مستفادة من تطوير تطبيقات الأندرويد</title><link>http://ardroid.com/2011/07/03/lessons-learnt/</link> <comments>http://ardroid.com/2011/07/03/lessons-learnt/#comments</comments> <pubDate>Sun, 03 Jul 2011 04:00:36 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دراسات وتحليلات]]></category> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Android Development]]></category> <category><![CDATA[lessons]]></category> <category><![CDATA[تطوير أندرويد]]></category> <category><![CDATA[دروس مستفادة]]></category><guid
isPermaLink="false">http://ardroid.com/?p=9337</guid> <description><![CDATA[شاركت بتطوير عدة تطبيقات على الأندرويد، ٥ تطبيقات حتى الآن. جميعها كان يستهدف المستخدم العربي وتحديدا السوق السعودي، وجميعها كان مجانيا لعدة أسباب الأول متعلق بطبيعة الشراء من سوق الأندرويد في المنطقة العربية، مع عدم إغفال وجود أساليب دفع أخرى ربما نناقشها لاحقا في موضوع منفصل. السبب الثاني هو رغبتنا في دراسة تفاعل مستخدم الأندرويد في السعودية&#8230; <a
href="http://ardroid.com/2011/07/03/lessons-learnt/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="450" height="371" src="http://ardroid.com/wp-content/uploads/2011/07/android.jpg" class="attachment-large" alt="android" title="android" /><p>شاركت بتطوير عدة تطبيقات على الأندرويد، ٥ تطبيقات حتى الآن. جميعها كان يستهدف المستخدم العربي وتحديدا السوق السعودي، وجميعها كان مجانيا لعدة أسباب الأول متعلق بطبيعة الشراء من سوق الأندرويد في المنطقة العربية، مع عدم إغفال وجود أساليب دفع أخرى ربما نناقشها لاحقا في موضوع منفصل. السبب الثاني هو رغبتنا في دراسة تفاعل مستخدم الأندرويد في السعودية مع تلك التطبيقات، ومحاولة منا لتحديد عوامل الانتشار ونجاح التطبيق في المنطقة. نعترف بأننا فشلنا في جوانب ونجحنا في أخرى. فبات من المهم أن نتعلم من الأخطاء لنتفاداها، وأن نحدد نقاط النجاح لنبني عليها، فاحتمالية أن تنجح ببنائك على نجاح مسبق تكون عالية، وهو درس فعال، بالرغم من بساطته وربما بديهيته، أيقنا بأهميته بعد قراءة كتاب <a
href="http://37signals.com/rework/">Rework</a> الشهير.</p><p>سأقوم فيما يلي بالمرور على أبرز الدروس التي تعلمتها من تجربتي في تطوير تطبيقات الأندرويد، وأدعوكم في النهاية لمشاركتنا بالدروس التي استفدتم منها في تطوير تطبيقاتكم لتعم الفائدة.</p><h2>حدد السوق المستهدَف قبل كل شيء:</h2><p>اسأل نفسك هل تريد من تطبيقك أن يكون عالميا، أو أن يكون متخصصا في السوق العربي إجمالا، أو أكثر تحديدا كالسوق السعودي. الإجابة على هذا السؤال تساعدك في فهم طبيعة المستخدمين في ذلك السوق، حجم السوق نفسه من ناحية عدد حاملي الأجهزة النقالة، مدى نشاط المستخدمين في تحميل التطبيقات واستخدامها. ففي السوق السعودي مثلا، نجد أن نسبة كبيرة من التطبيقات الناجحة هي التطبيقات الترفيهية Entertainment. لا عجب في ذلك اذا علمنا أن السعودية تعتبر رقم واحد عالميا في عدد مشاهدات اليوتيوب عبر أجهزة الجوال (بحسب محاضرة في مؤتمر أيام غوغل-الرياض)، واليوتيوب يعتبر جزءا مهما من الترفيه في السوق السعودي ويمكننا القاء نظرة على صفحة اليوتيوب الخاصة بالسعودية لنجد ذلك جليا. أضف الى ذلك تطبيقات الألعاب التي تلقى رواجا ضخما أيضا.</p><p>هذا لا يعني أن نركز على التطبيقات الترفيهية كالألعاب فقط، ولكن ذلك يجعلك واقعيا في تحليلك للسوق وتحديدك لفكرة التطبيق والخصائص المقترنة به وكيفية تسويقه في مجتمع.</p><h2>استفد من التوجهات العالمية في مجال التطبيقات:</h2><p>بحسب غوغل (المصدر احدى محاضرات غوغل في مؤتمر أيام غوغل)، التوجهات العالمية التي ستؤثر على سوق التقنية هي: Mobile, Social, Local أي متنقل، اجتماعي، محلي. باختصار، التقنية تتحول بجميع أشكالها لتصبح متنقلة وبين أيدينا. كما أننا أصبحنا مهتمين جدا بأن يكون التطبيق التقني أيا كان به خاصية التشبيك والتواصل الاجتماعي. والبعد الأخير هو أن تكون التقنية المقدمة محلية التوجه، أي أن نجد التقنية قريبة منا وتحل مشكلة تخص المجتمع الذي نعيش فيه. الدرس المستفاد من هذه المعطيات هو أن نوظف هذه التوجهات في تطبيقاتنا.</p><p><a
rel="attachment wp-att-9343" href="http://ardroid.com/2011/07/03/lessons-learnt/androidusb-2/"><img
class="aligncenter size-medium wp-image-9343" title="androidusb" src="http://ardroid.com/wp-content/uploads/2011/07/androidusb-277x300.png" alt="" width="277" height="300" /></a></p><h2>ادرس مدى نجاح الفكرة وحللها بشكل معمق:</h2><p>درس مهم جدا وهو أول ما يتبادر لأذهاننا عندما نفكر بعمل تطبيق. من المهم أن نرى بداية التصنيف الذي نريد لفكرتنا أن تندرج تحته. فهل يا ترى نريد لفكرتنا أن تكون:</p><ul><li><span
style="line-height: 13px;">إعادة طرح لأفكار موجودة مسبقا ولكن بشكل مغاير أو بخصائص إضافية (وهذا يتضمن أيضا تحويل الهاتف النقال ليحل محل آلة أخرى كالغيتار وغيرها).</span></li><li><span
style="line-height: 13px;">فكرة منبثقة من بحث علمي مفصل (كتطوير فكرة أمثلة استهلاك البطارية، تعزيز النواحي الأمنية للجهاز باستخدام الذكاء الصناعي،&#8230;)</span></li><li><span
style="line-height: 13px;">فكرة غريبة وغير مألوفة (ليست بالضرورة أن تكون هادفة كتطبيق الشاشة المكسورة والأصوات المرعبة،&#8230;)</span></li><li><span
style="line-height: 13px;">أفكار متخصصة جدا في مجالات محددة (كتطبيق يضم كل ما يحتاجه دارسوا علم التشريح Anatomy).</span></li></ul><p>حدد إطار الفكرة التي تراودك وابحث عن مدى نجاحها في السوق المستهدف مع دراستك لنفسية الفئة المستهدفة بالتطبيق ومدى تفاعلهم مع فكرتك. قارنها بأخرى شبيهة، حلل العوامل التي سببت نجاح فكرة شبيهة وادرس مدى تأثيرها على فكرتك.</p><h2>التطبيق الذي تريد تطويره لابد أن يكون ذا فائدة عليك أنت شخصيا، وأن تكون أنت أول مستخدم له:</h2><p>لعل قصتي أنا وصديقي أنس قلعجي في تطوير تطبيق &#8220;<a
href="http://ardroid.com/2011/03/16/fareeqi-app/">فريقي</a>&#8221; فيها دروس عديدة وأهمها أننا طورنا تطبيقا لشريحة من المستخدمين (محبي كرة القدم) ولكننا لسنا منهم. لا ألعب كرة القدم ولا أحبذها، وكذلك أنس، ولذلك خرج التطبيق بشكل لا يلبي فعليا ما يحتاجه عشاق الكرة. وبعد قراءتنا لكتاب Rework، تنبهنا لأهمية أن تصنع تطبيقا يلبي حاجتك وتكون أنت أحد مستخدميه لتضمن نجاحه على الأقل بين من يشاركونك ذلك الاهتمام. تحضرني قاعدة تنتهجها غوغل في صناعة تطبيقاتها تقول: do not create what people want, but what they need أي لا تصنع ما يريده الناس، بل ما يحتاجونه فعليا. وهذا يعيدنا لما ذكرناه مسبقا من ناحية فهم نفسية الناس وتفاعلهم مع الفكرة. في هذا الجانب، لاحظنا أن العديد ممن يلعبون كرة القدم في المجتمع المحلي ويستأجرون الملاعب لذلك الغرض يجدون متعة قد لا يحسون بها مباشرة في عملية الاختلاف على الوقت والمكان واجراء عشرات الاتصالات للتنسيق فيما بينهم. لذلك اذا أردت عمل تطبيق يسهل عليهم عملية الحجز، فلابد أن تأخذ بعين الاعتبار هذه النقطة <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><h2>استراتيجيات النجاح السريع أو الفشل السريع:</h2><p>بحسب غوغل، يستحوذ الأندرويد على ما نسبته ١٠٪ من الأجهزة النقالة في السعودية، في مقابل ٣٠٪ للآيفون، و ٥٠٪ للسيمبيان. لذلك لا تتفاجأ بأرقام التحميل المنخفضة اذا كنت تستهدف قطاع الأندرويد في السوق المحلي. ولكن بالرغم من ذلك، هذا الرقم يعتمد على نوعية التطبيق المقدم. لذلك وبشكل عام، حاول أن تضع استراتيجيات لتوظيف النجاح السريع غير المتوقع، أو الفشل السريع. لا تستسلم واستمر في البحث والمحاولة. هذا أحد الدروس المستفادة من تجربتنا.</p><h2><a
rel="attachment wp-att-9344" href="http://ardroid.com/2011/07/03/lessons-learnt/android-4/"><img
class="aligncenter size-medium wp-image-9344" title="android" src="http://ardroid.com/wp-content/uploads/2011/07/android-300x247.jpg" alt="" width="300" height="247" /></a></h2><h2>لا تُضع الوقت في تطوير التطبيق الكامل المتكامل الخارق الحارق <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> :</h2><p>إحدى استراتيجيات غوغل، وأعتذر عن كثرة الاشارة لغوغل في هذه المقالة، هي أن تطرح التطبيق بأسرع وقت وهو يحوي خصائص أساسية بسيطة جدا (وعادة في مرحلة التجريب بيتا)، ومن ثم تبدأ بتطويره وإضافة خصائص جديدة بشكل مرحلي متزايد.</p><blockquote><p
style="text-align: left;"><strong>Innovation, not instant perfection.</strong> Google launches early and often in small beta tests, before releasing new features widely</p></blockquote><h2>أخيرا: ماهو الشيء الذي سيجعل المستخدم يعود لتطبيقك:</h2><p>هذا سؤال مهم جدا جدا. لا أحد يريد لتطبيقه أن يستعمل مرة واحدة ويحذف من جهاز المستخدم. أو أن يستخدمه كل سنة مرة. فكر جيدا بالشيء\الخاصية التي ستدعو المستخدم\ـة للعودة لتطبيقك بشكل مستمر. مالذي يجعلك تستخدم سكايب، أنجري بيردز، واتس آب وغيرها بشكل متكرر؟</p><p>&nbsp;</p><p>أتمنى أن تكون هذه الدروس قد أضاءت بعض الجوانب التي ربما أغفلها عدد منا أو أنها أضافت لكم شيئا من واقع تجربة عملية. وأدعوكم جميعا والمطورين خصوصا لمشاركتنا بتجاربهم علنا نستفيد بشكل أكبر.</p><p>وائل</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/07/03/lessons-learnt/feed/</wfw:commentRss> <slash:comments>22</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/07/android-reading.png" /> </item> <item><title>مؤتمر موبايلي لمطوري تطبيقات الموبايل</title><link>http://ardroid.com/2011/05/14/mobily-devs-conference/</link> <comments>http://ardroid.com/2011/05/14/mobily-devs-conference/#comments</comments> <pubDate>Sat, 14 May 2011 21:29:48 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Conference]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Mobily]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[تطوير]]></category> <category><![CDATA[مؤتمر]]></category> <category><![CDATA[موبايلي]]></category><guid
isPermaLink="false">http://ardroid.com/?p=8757</guid> <description><![CDATA[في إطار سعيها الحثيث للإسهام في إنشاء مجمتع فاعل لمطوري تطبيقات الجوال، تنظم شركة موبايلي مؤتمرا لتطوير تطبيقات الموبايل على مختلف المنصات. يستهدف هذا المؤتمر جميع مطوري تطبيقات الموبايل والمهتمين بها بالإضافة لرواد الأعمال الذين يخططون لإنشاء شركات تهتم بتطبيقات الجوال. الدخول مجاني لجميع المطورين والمؤتمر يشكل فرصة رائعة للتعرف على أحدث التوجهات والمجالات في&#8230; <a
href="http://ardroid.com/2011/05/14/mobily-devs-conference/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="300" height="300" src="http://ardroid.com/wp-content/uploads/2011/05/lrg_mobily.gif" class="attachment-large" alt="lrg_mobily" title="lrg_mobily" /><p>في إطار سعيها الحثيث للإسهام في إنشاء مجمتع فاعل لمطوري تطبيقات الجوال، تنظم شركة <a
href="http://www.mobily.com.sa/portalu/wps/portal/!ut/p/c5/04_SB8K8xLLM9MSSzPy8xBz9CP0os3gDCxNHi1CPwBAng1BDr2BDY0NzAwjQ9_PIz03VL8h2VAQAszzhOg!!/dl3/d3/L0lDUmlTUSEhL3dHa0FKRnNBL1lCUmZ3QSEhL2Fy/">موبايلي</a> مؤتمرا لتطوير تطبيقات الموبايل على مختلف المنصات. يستهدف هذا المؤتمر جميع مطوري تطبيقات الموبايل والمهتمين بها بالإضافة لرواد الأعمال الذين يخططون لإنشاء شركات تهتم بتطبيقات الجوال.</p><p>الدخول مجاني لجميع المطورين والمؤتمر يشكل فرصة رائعة للتعرف على أحدث التوجهات والمجالات في تطوير تطبيقات الجوال. بالإضافة للتعرف إلى ما تتطلع إليه الشركات والتقنيات التي توظفها، والأهم، اللقاء بأبرز الأشخاص العاملين والمهتمين بعالم تطبيقات الجوال في المنطقة.</p><p>المؤتمر سيعقد في مدينة الرياض، يوم الاثنين القادم، ١٦ مايو ٢٠١١، فندق الفورسيزنز، برج المملكة، قاعة E,D، الجدول <a
href="http://www.mobily.com.sa/portalu/wps/portal/!ut/p/c5/04_SB8K8xLLM9MSSzPy8xBz9CP0os3gLUwsPd08TIwMLMyM3A8_QoBBXv6AwA_cQE6B8JJK8gaubqYGno6-rpaGfu7FFiDkB3X4e-bmp-gW5EeUAYYcr9w!!/dl3/d3/L0lDUmlTUSEhL3dHa0FKRnNBL1lCUmZ3QSEhL2Fy/">ومواضيع المحاضرات ومعلومات المتحدثين تجدونها في هذا الرابط</a>.</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/05/14/mobily-devs-conference/feed/</wfw:commentRss> <slash:comments>14</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/05/lrg_mobily-200x200.gif" /> </item> <item><title>تطبيق حاذر!</title><link>http://ardroid.com/2011/03/16/speedy-watch-out-app/</link> <comments>http://ardroid.com/2011/03/16/speedy-watch-out-app/#comments</comments> <pubDate>Wed, 16 Mar 2011 12:49:40 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[application]]></category> <category><![CDATA[Speedy Watch Out]]></category> <category><![CDATA[تطبيقات عربية]]></category> <category><![CDATA[حاذر]]></category><guid
isPermaLink="false">http://ardroid.com/?p=7988</guid> <description><![CDATA[تم اليوم إطلاق تطبيق أندرويد آخر بأيد عربية وهو تطبيق &#8220;حاذر Speedy! Watch Out&#8221;. التطبيق من برمجة وائل العلواني. وتم الإطلاق برعاية شركة موبايلي في السعودية وذلك ضمن مبادرتها الخاصة بدعم المطورين العرب على كافة منصات الجوالات. قد بحذر، وعندما تسرع، سيقوم &#8220;حاذر&#8221; بتنبيهك بأن حد السرعة لهذا الشارع قد تم تجاوزه. بناء على ماضيك&#8230; <a
href="http://ardroid.com/2011/03/16/speedy-watch-out-app/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="512" height="512" src="http://ardroid.com/wp-content/uploads/2011/03/speedy-Icon-hres.png" class="attachment-large" alt="speedy Icon hres" title="speedy Icon hres" /><p></p><p
dir="rtl">تم اليوم إطلاق تطبيق أندرويد آخر بأيد عربية وهو تطبيق &#8220;حاذر Speedy! Watch Out&#8221;. التطبيق من برمجة <a
href="http://ardroid.com/author/wael-alwani/">وائل العلواني</a>. وتم الإطلاق برعاية شركة موبايلي في السعودية وذلك ضمن <a
href="http://www.mobily.com.sa/wps/portal/dc">مبادرتها الخاصة بدعم المطورين العرب على كافة منصات الجوالات.</a></p><p
dir="rtl">قد بحذر، وعندما تسرع، سيقوم &#8220;حاذر&#8221; بتنبيهك بأن حد السرعة لهذا الشارع قد تم تجاوزه.</p><p
style="text-align: center;" dir="rtl"><a
rel="attachment wp-att-7992" href="http://ardroid.com/2011/03/16/speedy-watch-out-app/2-4/"><img
class="size-medium wp-image-7992 aligncenter" title="2" src="http://ardroid.com/wp-content/uploads/2011/03/2-200x300.jpg" alt="" width="200" height="300" /></a></p><p
dir="rtl">بناء على ماضيك في القيادة في شارع محدد، سيقوم التطبيق بتنبيهك بمدى احتمالية حصولك على مخالفة سرعة. قم بتحديث قاعدة بيانات &#8220;حاذر&#8221; لإضافة المزيد من الشوارع (تحديثك يتم مشاركته مع جميع مستخدمي التطبيق). كما يمكنك تأكيد حد السرعة القصوى لشارع ما، إضافتها، الإبلاغ عن كونها خاطئة، ويمكنك أيضا إضافة الأسماء العربية للشوارع ومساعدتنا.</p><p
dir="rtl"><a
rel="attachment wp-att-7990" href="http://ardroid.com/2011/03/16/speedy-watch-out-app/screen-shot-2011-03-08-at-11-33-01-am/"><img
class="aligncenter size-medium wp-image-7990" title="Screen shot 2011-03-08 at 11.33.01 AM" src="http://ardroid.com/wp-content/uploads/2011/03/Screen-shot-2011-03-08-at-11.33.01-AM-200x300.png" alt="" width="200" height="300" /></a></p><p
dir="rtl">التطبيق يدعم العربية في جميع الواجهات (اضغط زر القائمة في الواجهة الرئيسية).</p><p
dir="rtl">يستخدم &#8220;حاذر&#8221; تقنية الجي بي اس والانترنت لتحديد مكان سيارتك في الوقت الفعلي Real-Time، وجلب خريطة الشارع. يقوم التطبيق بتسجيل سرعاتك في الشوارع التي زرتها ومعالجتها لتنبيهك مستقبلا عن احتمال حصولك على مخالفة سرعة في الشارع الذي تقود فيه.</p><p
dir="rtl"><a
rel="attachment wp-att-7991" href="http://ardroid.com/2011/03/16/speedy-watch-out-app/5-2/"><img
class="aligncenter size-medium wp-image-7991" title="5" src="http://ardroid.com/wp-content/uploads/2011/03/5-200x300.jpg" alt="" width="200" height="300" /></a></p><p
dir="rtl">التطبيق يدعم مدينة الرياض فقط من ناحية تزويدك بحد السرعة المقترن بالشارع الذي تقود فيه (في حال تواجده في قاعدة البيانات). يمكنكم مساعدتنا بإضافة المعلومات وتأكيدها.</p><p
dir="rtl">سنقوم بإضافة المزيد من المدن في المستقبل. ولمن هم خارج الرياض، سيعمل التطبيق، وسيعرض أسماء الشوارع، ولكن حد السرعة هو ٧٠ دائما.</p><p
dir="rtl">يدعم &#8220;حاذر&#8221; نسخ الأندرويد ابتداء من ١.٥</p><p></p><p
dir="rtl">ننوي عمل الكثير من التحديثات على التطبيقين، لذلك لا تبخلوا علينا بمقترحاتكم وأفكاركم. للتواصل معنا، الرجاء إرسال ايميل الى: info@DroidActive.com</p><p
dir="rtl"><a
rel="attachment wp-att-7989" href="http://ardroid.com/2011/03/16/speedy-watch-out-app/speedy/"><img
class="aligncenter size-full wp-image-7989" title="speedy" src="http://ardroid.com/wp-content/uploads/2011/03/speedy.png" alt="" width="125" height="125" /></a><a
href="https://market.android.com/details?id=com.droidactive.speedy.testing">التطبيق في سوق أندرويد</a>.</p><p
dir="rtl"><strong>تحديث: يمكنكم تحميل التطبيق مباشرة <a
href="http://wa2el.net/documents/SpeedyWatchOut.apk">من هنا</a>.</strong></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/03/16/speedy-watch-out-app/feed/</wfw:commentRss> <slash:comments>21</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/03/speedy-Icon-hres-200x200.png" /> </item> <item><title>تطبيق فريقي</title><link>http://ardroid.com/2011/03/16/fareeqi-app/</link> <comments>http://ardroid.com/2011/03/16/fareeqi-app/#comments</comments> <pubDate>Wed, 16 Mar 2011 12:46:31 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[application]]></category> <category><![CDATA[Fareeqi]]></category> <category><![CDATA[تطبيقات عربية]]></category> <category><![CDATA[فريقي]]></category><guid
isPermaLink="false">http://ardroid.com/?p=7970</guid> <description><![CDATA[تم اليوم إطلاق تطبيق أندرويد جديد تم تطويره بأيد عربية وهو: تطبيق &#8220;فريقي Fareeqi&#8221;. التطبيق هو مشروع برمجة مشترك بين وائل العلواني والصديق أنس قلعجي. وتم الإطلاق برعاية شركة موبايلي في السعودية وذلك ضمن مبادرتها الخاصة بدعم المطورين العرب على كافة منصات الجوالات. &#8220;أنشئ مباراة، شاركها مع أصدقائك ودع &#8220;فريقي&#8221; يكمل المهمة&#8221; إنشاء مباراة جديدة&#8230; <a
href="http://ardroid.com/2011/03/16/fareeqi-app/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="125" height="125" src="http://ardroid.com/wp-content/uploads/2011/03/fareeqi.png" class="attachment-large" alt="fareeqi" title="fareeqi" /><p></p><p
dir="rtl">تم اليوم إطلاق تطبيق أندرويد جديد تم تطويره بأيد عربية وهو: تطبيق &#8220;فريقي Fareeqi&#8221;. التطبيق هو مشروع برمجة مشترك بين <a
href="http://ardroid.com/author/wael-alwani/">وائل العلواني</a> والصديق <a
href="http://twitter.com/kalaji">أنس قلعجي</a>. وتم الإطلاق برعاية شركة موبايلي في السعودية وذلك ضمن <a
href="http://www.mobily.com.sa/wps/portal/dc">مبادرتها الخاصة بدعم المطورين العرب على كافة منصات الجوالات</a>.</p><p
dir="rtl">&#8220;أنشئ مباراة، شاركها مع أصدقائك ودع &#8220;فريقي&#8221; يكمل المهمة&#8221;</p><p
dir="rtl">إنشاء مباراة جديدة لا يتطلب منك سوى تحديد الزمان، اختيار أصدقائك من قائمة الهاتف وتحديد المكان على الخريطة. ثم يتولى فريقي مهمة إنشاء رسالة تحتوي جميع المعلومات (الزمان والمكان والإحداثيات) وإرسالها لجميع اللاعبين.</p><p
dir="rtl"><a
rel="attachment wp-att-7972" href="http://ardroid.com/2011/03/16/fareeqi-app/screen-shot-2011-03-08-at-9-54-28-am/"><img
class="aligncenter size-medium wp-image-7972" title="Screen shot 2011-03-08 at 9.54.28 AM" src="http://ardroid.com/wp-content/uploads/2011/03/Screen-shot-2011-03-08-at-9.54.28-AM-200x300.png" alt="" width="200" height="300" /></a></p><p
dir="rtl">خلال اللعب يقوم فريقي ومن خلال واجهته الغنية بخيارات التحكيم باحتساب وقت المباراة والوقت بدل الضائع بالإضافة إلى التنبيه عندالانتهاء. بالإضافة إلى التحكم بالبطاقات الحمراء والصفراء، الضربات الركنية والرميات الجانبية، والنتيجة.</p><p
dir="rtl"><a
rel="attachment wp-att-7973" href="http://ardroid.com/2011/03/16/fareeqi-app/screen-shot-2011-03-08-at-9-56-45-am/"><img
class="aligncenter size-medium wp-image-7973" title="Screen shot 2011-03-08 at 9.56.45 AM" src="http://ardroid.com/wp-content/uploads/2011/03/Screen-shot-2011-03-08-at-9.56.45-AM-200x300.png" alt="" width="200" height="300" /></a></p><p
dir="rtl">ويمكنك الاطلاع على نتيجة وإحصائيات أي مباراة سابقة في أي وقت.</p><p
dir="rtl">التطبيق يدعم العربية في جميع واجهاته (اضغط زر القائمة في الواجهة الرئيسية).</p><p
dir="rtl"><a
rel="attachment wp-att-7971" href="http://ardroid.com/2011/03/16/fareeqi-app/screen-shot-2011-03-08-at-9-51-07-am/"><img
class="aligncenter size-medium wp-image-7971" title="Screen shot 2011-03-08 at 9.51.07 AM" src="http://ardroid.com/wp-content/uploads/2011/03/Screen-shot-2011-03-08-at-9.51.07-AM-200x300.png" alt="" width="200" height="300" /></a></p><p
dir="rtl">التطبيق يدعم مباريات ذات شوط واحد فقط، كما هي عليه أغلب المباريات بين الأصدقاء.. على أننا سندعم مباريات الشوطين في الاصدارات القادمة.</p><p
dir="rtl">يدعم &#8220;فريقي&#8221; نسخ الأندرويد ابتداء من ١.٥.</p><p>ننوي عمل الكثير من التحديثات على التطبيق، لذلك لا تبخلوا علينا بمقترحاتكم وأفكاركم. للتواصل معنا، الرجاء إرسال ايميل الى: info@DroidActive.com</p><p><a
rel="attachment wp-att-7975" href="http://ardroid.com/2011/03/16/fareeqi-app/fareeqi/"><img
class="aligncenter size-full wp-image-7975" title="fareeqi" src="http://ardroid.com/wp-content/uploads/2011/03/fareeqi.png" alt="" width="125" height="125" /></a><a
href="https://market.android.com/details?id=com.aw.views">التطبيق في سوق أندرويد</a>.</p><p><strong>تحديث: يمكنكم تحميل التطبيق مباشرة <a
href="http://wa2el.net/documents/Fareeqi.apk">من هنا</a>.</strong></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/03/16/fareeqi-app/feed/</wfw:commentRss> <slash:comments>21</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/03/FareeqiApp-icon-hres-200x200.png" /> </item> <item><title>كتاب أندرويد ببساطة &#8211; تعلم تطوير تطبيقات الأندرويد</title><link>http://ardroid.com/2011/03/03/android-easily-book/</link> <comments>http://ardroid.com/2011/03/03/android-easily-book/#comments</comments> <pubDate>Thu, 03 Mar 2011 21:15:50 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[android easily book]]></category> <category><![CDATA[development]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[تطوير]]></category> <category><![CDATA[كتاب أندرويد ببساطة]]></category><guid
isPermaLink="false">http://ardroid.com/?p=7768</guid> <description><![CDATA[من أهم أهدافنا في موقع أردرويد هو نشر الوعي بأهمية التطوير لمنصة أندرويد مفتوحة المصدر وعدم الاكتفاء بنشر الأخبار والدروس والمراجعات, لهذا قدمنا لكم سابقاً سلسلتين لشرح وتعليم التطوير لأندرويد واحدة منهما كانت  بالفيديو. و كنا قد تحدثنا في أكثر من مناسبة عن قرب صدور كتاب: أندرويد ببساطة، تعلم تطوير التطبيقات على أجهزة الأندرويد. وهانحن&#8230; <a
href="http://ardroid.com/2011/03/03/android-easily-book/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="200" height="200" src="http://ardroid.com/wp-content/uploads/2011/03/androideasily.jpg" class="attachment-large" alt="androideasily" title="androideasily" /><p>من أهم أهدافنا في موقع أردرويد هو نشر الوعي بأهمية التطوير لمنصة أندرويد مفتوحة المصدر وعدم الاكتفاء بنشر الأخبار والدروس والمراجعات, لهذا قدمنا لكم سابقاً سلسلتين لشرح وتعليم التطوير لأندرويد واحدة منهما كانت  بالفيديو. و كنا قد تحدثنا في أكثر من مناسبة عن قرب صدور كتاب: أندرويد ببساطة، تعلم تطوير التطبيقات على أجهزة الأندرويد. وهانحن نضعه الآن بين أيديكم ومعه الكود الخاص بنسخة مصغرة من تطبيق RestDroid والذي يتم شرحه كاملا في هذا الكتاب.</p><p>الكتاب يبدأ بشرح أساسيات التطوير لأندرويد ويقدمها بشكل مبسط وعملي عبر بناء تطبيق كامل خطوة بخطوة. الكتاب حالياً ما يزال بنسخة البيتا ونقدمه لكم مجاناً للتحميل بصيغه PDF.</p><p>الكتاب من تأليف <a
href="http://www.badwi.com">محمد بدوي</a> و <a
href="http://ardroid.com/author/wael-alwani/">وائل العلواني</a>.. وقد كتب محمد بدوي في المقدمة:</p><p></p><blockquote><p>من الجيد معرفته أننا قمنا بكتابة الكتاب في نھاية العام<strong> 2009</strong> ميلادية و من ثم حاولنا البحث عن راعي لطباعة الكتاب أو توزيعه و قد قامت بعض الجھات بإطلاق الوعود الكثيرة ومنھا شركة جوجل ممثلة بوكيلھا في السعودية مما جعلنا ننتظر بضعة أشھر لنعرف رأي الراعي بالكتاب و مدى جودته لتوفيره للناس ، و لكن و مع مرور الوقت لم نعد نسمع منھم ، و لذا تقاعسنا في نشر الكتاب و لم نكمله و توقف العمل عليه نھائيا منذ شھر<strong> 4</strong> للعام<strong> 2010</strong> و ھا قد قمنا أخيرا بتنقيحه و على عجل لإصداره للناس و ھو و إن كانت بعض البيانات قديمة إلا أنه مازال صالحا للعمل بما فيه حتى يومنا ھذا، لذا في حال وجود بعض الأخطاء فنرجو أن تعذرنا فلقد قمنا بأفضل ما يمكن للخروج بالكتاب بأفضل شكل و بأبسط ما يمكن حيث لا يوجد أي كتب عربية حتى الآن مھتمة في ھذا المجال و كذلك الحال أغلب الكتب الأجنبية التي طالعناھا تعاني من التعقيد ، بل و تعتبر بأن من يقرأ الكتاب ملم بالكثير من الأمور و لذا مازلنا نجد بأن الكتاب سيكون من أفضل ما كتب حتى يومنا ھذا في ھذا العالم<strong>.</strong><strong><br
/> </strong>الكتاب مجاني للأفراد و يمكن ٕاعادة توزيعه و نشره كما ھو بدون اي تعديل و بشكل الكتروني دون الرجوع لنا ، ولذا أرجو أن لا تنسونا من دعوة بظھر الغيب فنحن بأشد الحاجة لھا دائما<strong>.</strong><strong><br
/> </strong>اما في حال الطبع أو استخدامه لأغراض تجارية أو لغير الأفراد فيرجى الرجوع لنا لأخذ إذن خاص بذلك<strong>.</strong></p></blockquote> <address></address><p>هل تريد الانضمام إلى عالم التطوير الممتع لأندرويد؟ هل تريد أن تطرح تطبيقاتك في سوق أندرويد وبيعها لجمهور ضخم من مستخدمي منصة الهواتف الذكية الأكثر انتشاراً في العالم؟ قم بتحميل الكتاب الآن وابدأ انطلاقتك الحقيقية في عالم الأندرويد. تستطيع تحميل الكتاب<a
href="http://ardroid.net/AndroidEasily/Book-AndroidEasily.zip"> من هذا الرابط</a>، والكود المرتبط به<a
href="http://ardroid.net/AndroidEasily/BookRestDroid.zip"> من هنا</a>.</p><p>نتمنى لكم التوفيق وبانتظار سماع آرائكم <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/03/03/android-easily-book/feed/</wfw:commentRss> <slash:comments>83</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/03/androideasily.jpg" /> </item> <item><title>مقابلة مع المطور أيمن السند</title><link>http://ardroid.com/2011/01/16/ayman-alsanad-interview/</link> <comments>http://ardroid.com/2011/01/16/ayman-alsanad-interview/#comments</comments> <pubDate>Sun, 16 Jan 2011 08:47:30 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[أيمن السند]]></category> <category><![CDATA[اللغة العربية]]></category> <category><![CDATA[مطورون]]></category> <category><![CDATA[مقابلة]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6863</guid> <description><![CDATA[كلنا يعرف بأن التعريب الرسمي لنظام أندرويد لم يرَ النور بعد. ولكن جهوداً حثيثة بُذلت في مضمار التعريب غير الرسمي، ولعل اسم المطور أيمن السند هو الاسم الأبرز في هذا المجال. يُصدر المطور أيمن السند نسخاً معربة من نظام الأندرويد بشكل دوري على مختلف الأجهزة وينشرها في موقعه، أردويد. ولا يتأخر لحظة عن حل المشاكل&#8230; <a
href="http://ardroid.com/2011/01/16/ayman-alsanad-interview/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="180" height="277" src="http://ardroid.com/wp-content/uploads/2011/01/ayman-Sanad.jpg" class="attachment-large" alt="ayman Sanad" title="ayman Sanad" /><p>كلنا يعرف بأن التعريب الرسمي لنظام أندرويد لم يرَ النور بعد. ولكن جهوداً حثيثة بُذلت في مضمار التعريب غير الرسمي، ولعل اسم المطور <a
href="http://ardroid.com/tag/%D8%A3%D9%8A%D9%85%D9%86-%D8%A7%D9%84%D8%B3%D9%86%D8%AF/">أيمن السند</a> هو الاسم الأبرز في هذا المجال.</p><p>يُصدر المطور أيمن السند نسخاً معربة من نظام الأندرويد بشكل دوري على مختلف الأجهزة وينشرها في موقعه، <a
href="http://ardoid.com/">أردويد</a>. ولا يتأخر لحظة عن حل المشاكل المصاحبة لهذا النوع من العمل غير السهل، وتجاوبه السريع مع المستخدمين في <a
href="http://twitter.com/aalsanad">حسابه على تويتر</a> خير دليل.</p><p>كان لنا لقاء سريع مع الأخ المطور أيمن السند عبر البريد الالكتروني. نترككم مع نص اللقاء.</p><div
id="attachment_6865" class="wp-caption aligncenter" style="width: 190px"><a
rel="attachment wp-att-6865" href="http://ardroid.com/2011/01/16/ayman-alsanad-interview/ayman-sanad/"><img
class="size-full wp-image-6865" title="ayman Sanad" src="http://ardroid.com/wp-content/uploads/2011/01/ayman-Sanad.jpg" alt="" width="180" height="277" /></a><p
class="wp-caption-text">أيمن السند</p></div><p
dir="rtl"><p
dir="rtl"><span
style="color: #0000ff;">متى كانت أول مرة اطلعت فيها على منصة الأندرويد؟ وهل راودتك فكرة تعريبه منذ الوهلة الأولى؟</span></p><p
dir="rtl">ربما كنت من الأوائل الذين تمكنوا من تجربة النظام على الجهاز الأقدم من HTC والمسمى G1  ، الحقيقية ان النظام كان بسيطا جداً ، لكن وقوف غوغل خلف النظام كان سببا كافيا كي أستبشر بمستقبل النظام. وهاهو اليوم كما ترون يشق طريقه إلى الصدارة.</p><p
dir="rtl"><span
style="color: #0000ff;">مالذي جذبك في منصة الأندرويد (من النواحي التقنية وغيرها)؟</span></p><p
dir="rtl">في البداية لن أتحدث عن جمال الواجهه أو سلاسة الاستخدام ، فالنظام كان بسيطا على الأرجح ، لكنني أحب التغيير واستكشاف التقنية لحظة بزوغها ، هذه طبيعتي.</p><p
dir="rtl">انجذبت أكثر حينما رأيت غوغل تسعى حثيثا إلى تطوير النظام بوتيرة سريعة جدا ، وكنت في كل فترة أرى شيئا جديدا يحفزني للبقاء أكثر.</p><p
dir="rtl">أندرويد مفتوح المصدر مايعني مرونة بلاحدود وبقدر المتعة التي نحصل عليها من هذه المرونة فإننا ندفع ثمنا لابأس به في عدم التوافق بين الأجهزة المتعددة.</p><p
dir="rtl"><span
style="color: #0000ff;">مالذي يفرق عمليا في تعريب رومات الأجهزة المصنعة من نفس الشركة، فمثلا نجد تعريبا خاصا بجهاز الHTC Incredible وآخر لل HTC Desire؟</span></p><p
dir="rtl">كما قلت سابقا، أندرويد مفتوح المصدر ، ولهذا تقوم بعض الشركات بتخصيص وبناء واجهات مبتكره إلى النظام. هذه الواجهات تضفي قدرا كبيرا إلى جمال النظام لكنها تؤثر تأثيرا مباشرا في مدى التوافق بين النظام الاصلي من غوغل والأنظمة المعدلة سواء من HTC  أو Motorola أو أي شركة أخرى.</p><p
dir="rtl">كل التعريبات التي أقوم بها هي نسخة من النظام الأصلي من غوغل وليس من النسخ المعدلة وهذه يجعل التوافق بينها وبين النسخ المعدلة مستحيلا في بعض الأحيان. ولتطوير التعريب المناسب لكل جهاز لابد من ايجاد التعديلات التي تمت بواسطة كل شركة وإضافة التعريب إليها كل على حدة. (تذكر ان هناك العشرات والعشرات من الأجهزة وهذا مايجعل التطوير لها صعبا للغاية)</p><p
dir="rtl"><span
style="color: #0000ff;">هل يمكن شرح عملية التعريب التي تقوم بعملها بشكل بسيط؟ وعملية طبخ الروم؟</span></p><p
dir="rtl">التعريب ببساطة هو تعديل في محرك الرسم الداخلي في النظام (Graphics Engine) في النظام حتى يقوم برسم الحروف العربية بناء على موقع الحرف من الجملة.</p><p
dir="rtl">أما طبخ الروم (خارج الاختصاص) فهي تعني وصفة تتكون من نظام التشغيل مضافا إليها بعض البرامج (بحسب رغبة مطور الروم) ، وغالبا ماتتميز الرومات المطبوخة ببعض التحسينات في واجهة النظام أو في أداء النظام.</p><p
dir="rtl"><span
style="color: #0000ff;">ماهو عادة السبب الذي يمنع\يوقف الرومات والنسخ المعربة التي تقوم بإنتاجها من العمل بعد تنصيب التحديثات على بعض الأجهزة؟ وفي المقابل، ماهو سبب نشوء بعض المشاكل على مستوى وظائف الجهاز بعد تنصيب بعض النسخ من الرومات؟</span></p><p
dir="rtl">نفس السبب السابق ، أحيانا تقوم الشركات باضافة بعض التعديلات الجديدة ويكون حينها لزاما أن نقوم ببناء التعريب مرة أخرى.</p><p
dir="rtl"><span
style="color: #0000ff;">في حال ظهر الدعم الرسمي للعربية على أندرويد، هل ستجسد تلك اللحظة نهاية عملك في مجال تعريب أندرويد؟ (في حال لا، ماهو الشيء الذي ستوفره؟)</span></p><p
dir="rtl">نعم ، في مجال التعريب سوف تكون النهاية وأتمنى أن تكون قريبة حتى ينعم الجميع بأندرويد يتحدث العربية ، وإذا لم يكن فلاخوف ، التعريب سيستمر وأتمنى أن نتوصل إلى طريقة أسهل مماهي عليه الآن.</p><p
dir="rtl"><span
style="color: #0000ff;">هل كانت لديك خبرة سابقة في العمل على الأجهزة الكفية والجوالات؟</span></p><p
dir="rtl">نعم ، وطورت عدة برامج للأجهزة الكفية من مايكروسوفت كان منها برنامج سوبر موجود ربما لايزال يتذكره البعض.</p><p
dir="rtl"><span
style="color: #0000ff;">ماهي أكثر ٣ تطبيقات تستخدمها؟</span></p><p>Browser</p><p>Twitter</p><p>Notes</p><p
dir="rtl"><span
style="color: #0000ff;">ماهي نصائحك لمطوري ومستخدمي الأندرويد العرب؟</span></p><p
dir="rtl"><strong>أولا</strong>: على قدر ماتكون الارداة يكون الانتاج أما المستحيل فعذر الكسالى.</p><p
dir="rtl"><strong>ثانيا</strong>: في عصرنا الحاضر أصبحت الأفكار أكثر قيمة من أي شيء آخر ، فكر بالفكرة المناسبة وابدأ بالتطوير ، وسوف تجد الطريق ممهدا أمامك ، أكرر الأفكار هي الأهم.</p><p
dir="rtl"><span
style="color: #0000ff;">من هو أيمن؟</span></p><p
dir="rtl">انسان بسيط ، ولد ونشأ في الرياض ، مغرم بالتقنية ، ومحب للتفكير غير الاعتيادي ، يسعى حثيثا إلى تطوير نفسه ونفع أمته.</p><p
dir="rtl"><span
style="color: #0000ff;">كلمة أخيرة.</span></p><p
dir="rtl">شكرا اردرويد.</p><p
dir="rtl">&#8211;</p><p
dir="rtl"><strong>نشكر المطور أيمن السند على إتاحة الفرصة لنا للقاء به، ونتمنى له كل التوفيق والنجاح على جميع الأصعدة.</strong></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/01/16/ayman-alsanad-interview/feed/</wfw:commentRss> <slash:comments>27</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/01/android-ar.jpg" /> </item> <item><title>لمطوري التطبيقات: إظهار الأحرف العربية في التطبيق حتى في الأجهزة غير المعربة.</title><link>http://ardroid.com/2011/01/11/using-arabic-reshape-class/</link> <comments>http://ardroid.com/2011/01/11/using-arabic-reshape-class/#comments</comments> <pubDate>Tue, 11 Jan 2011 16:19:46 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android Development]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[تطوير]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6804</guid> <description><![CDATA[انتهيت منذ فترة قليلة من تطوير تطبيق سيرى النور قريبا جدا. ورغبت باستخدام مجموعة ArabicReshape التي أنشأها المطور عبدالعزيز الحسين والذي أجرينا معه لقاء في وقت سابق. هذه المجموعة تقوم برسم الأحرف العربية كي تظهر صحيحة على جميع الأجهزة، المعربة وغير المعربة. تكمن المشكلة في أن طريقة استخدام هذه المجموعة غير موضحة، أو بالأحرى، مجرد&#8230; <a
href="http://ardroid.com/2011/01/11/using-arabic-reshape-class/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="318" height="100" src="http://ardroid.com/wp-content/uploads/2011/01/finalView.png" class="attachment-large" alt="finalView" title="finalView" /><p>انتهيت منذ فترة قليلة من تطوير تطبيق سيرى النور قريبا جدا. ورغبت باستخدام مجموعة <a
href="http://code.google.com/p/arabicreshaper/source/browse/opensourceReshape/src/com/AzizHuss/ArabicRehaper/ArabicReshape.java?r=6">ArabicReshape</a> التي أنشأها المطور <a
href="http://ardroid.com/2011/01/04/azizhuss-interview/">عبدالعزيز الحسين والذي أجرينا معه لقاء</a> في وقت سابق. هذه المجموعة تقوم برسم الأحرف العربية كي تظهر صحيحة على جميع الأجهزة، المعربة وغير المعربة.</p><p>تكمن المشكلة في أن طريقة استخدام هذه المجموعة غير موضحة، أو بالأحرى، مجرد استدعاء الدالة الموجودة في المجموعة وهي:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> reshape<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> Str<span style="color: #009900;">&#41;</span></pre></div></div><p>ومن ثم عرض النص المرتجع منها لن يظهره بأحرف عربية.</p><p>بحثت عن الحل ووجدته بعد عدة محاولات. الحل ببساطة هو ربط العنصر المرئي (كعنصر نصي أو زر) بملف خطوط Font يدعم الأحرف العربية. فلو أردنا مثلا استخدام ملف الخطوط <a
href="http://www.mediafire.com/?t7luz4xz00vr231">DroidSans-Bold.ttf</a>، نقوم بإنشاء مجلد بداخل مجلد موجود مسبقا وهو assets ونسميه fonts ومن ثم ننسخ ملف الخط إليه.</p><p
style="text-align: center;"><a
rel="attachment wp-att-6806" href="http://ardroid.com/2011/01/11/using-arabic-reshape-class/fontsss/"><img
class="aligncenter size-full wp-image-6806" title="fontsss" src="http://ardroid.com/wp-content/uploads/2011/01/fontsss.jpg" alt="" width="386" height="144" /></a></p><p
style="text-align: center;"><a
rel="attachment wp-att-6807" href="http://ardroid.com/2011/01/11/using-arabic-reshape-class/droidsan/"><img
class="aligncenter size-full wp-image-6807" title="droidSan" src="http://ardroid.com/wp-content/uploads/2011/01/droidSan.png" alt="" width="199" height="58" /></a></p><p>والآن نقوم، بعد وضع مجموعة <a
href="http://code.google.com/p/arabicreshaper/source/browse/opensourceReshape/src/com/AzizHuss/ArabicRehaper/ArabicReshape.java?r=6">ArabicReshape.java</a> في ملفات المشروع المصدرية، بكتابة الكود التالي: (على فرض أننا نريد إظهار النص في داخل زر Button)</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">Typeface droidBold <span style="color: #339933;">=</span> Typeface.<span style="color: #006633;">createFromAsset</span><span style="color: #009900;">&#40;</span>getAssets<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,<span style="color: #0000ff;">&quot;fonts/DroidSans-Bold.ttf&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">String</span> ardroid <span style="color: #339933;">=</span> ArabicReshape.<span style="color: #006633;">reshape</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;موقع أردرويد&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
ardroidButton <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span>findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">ardroiddButton</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
ardroidButton.<span style="color: #006633;">setTypeface</span><span style="color: #009900;">&#40;</span>droidBold<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
ardroidButton.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span>ardroid<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>النتيجة ستكون على الشكل التالي:</p><p><a
rel="attachment wp-att-6808" href="http://ardroid.com/2011/01/11/using-arabic-reshape-class/finalview/"><img
class="aligncenter size-full wp-image-6808" title="finalView" src="http://ardroid.com/wp-content/uploads/2011/01/finalView.png" alt="" width="318" height="100" /></a></p><p>بالتوفيق، وكل الشكر مجددا للأخ عبدالعزيز.</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/01/11/using-arabic-reshape-class/feed/</wfw:commentRss> <slash:comments>45</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2009/11/android-ar.png" /> </item> <item><title>مقابلة مع المطور عبدالعزيز الحسين</title><link>http://ardroid.com/2011/01/04/azizhuss-interview/</link> <comments>http://ardroid.com/2011/01/04/azizhuss-interview/#comments</comments> <pubDate>Tue, 04 Jan 2011 08:08:02 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[اللغة العربية]]></category> <category><![CDATA[عبد العزيز الحسين]]></category> <category><![CDATA[مطورون]]></category> <category><![CDATA[مقابلة]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6373</guid> <description><![CDATA[من منا بحث عن تطبيقات في متجر الأندرويد لتساعده على تجاوز مشكلة عدم دعم اللغة العربية ولم يصادف تطبيقات ممهورة بإسم AzizHuss ؟ أعتقد أن الجواب: لا أحد تطبيقات المطور المبدع عبدالعزيز الحسين جاءت في وقت كان مستخدموا الأندرويد العرب بحاجة ماسة إليها. وكنا قد استعرضنا هذه التطبيقات الممتازة في أردرويد منذ فترة. قمنا بعمل&#8230; <a
href="http://ardroid.com/2011/01/04/azizhuss-interview/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="200" height="200" src="http://ardroid.com/wp-content/uploads/2011/01/android-ar.png" class="attachment-large" alt="android-ar" title="android-ar" /><p>من منا بحث عن تطبيقات في متجر الأندرويد لتساعده على تجاوز مشكلة عدم دعم اللغة العربية ولم يصادف تطبيقات ممهورة بإسم AzizHuss ؟ أعتقد أن الجواب: لا أحد <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>تطبيقات المطور المبدع <a
href="http://android.azizus.info">عبدالعزيز الحسين</a> جاءت في وقت كان مستخدموا الأندرويد العرب بحاجة ماسة إليها. وكنا قد <a
href="http://ardroid.com/2010/08/29/5-arabic-android-apps/">استعرضنا هذه التطبيقات الممتازة في أردرويد منذ فترة</a>.</p><p>قمنا بعمل مقابلة سريعة مع الأخ عبدالعزيز عبر الإيميل، وكانت إجاباته مثيرة للإهتمام، ومؤثرة أيضا. نترككم مع نص المقابلة.</p><div
id="attachment_6417" class="wp-caption aligncenter" style="width: 276px"><a
rel="attachment wp-att-6417" href="http://ardroid.com/2011/01/04/azizhuss-interview/aziz-f/"><img
class="size-full wp-image-6417 " title="aziz f" src="http://ardroid.com/wp-content/uploads/2011/01/aziz-f.jpg" alt="" width="266" height="370" /></a><p
class="wp-caption-text">عبدالعزيز الحسين</p></div><p><span
style="color: #0000ff;">وائل: لماذا قررت تطوير تطبيقات على الأندرويد؟ ما الذي جذبك واستهواك في منصة الأندرويد؟</span></p><p>عبدالعزيز: يقال أن  الحاجة أم الاختراع. في البداية قررت اقتناء جهاز اندرويد فقمت بشراء جهاز Mytouch- <a
href="http://ardroid.com/tag/htc-magic/">HTC Magic</a>. قمت بتجربته في المحل التجاري وأعجبني كثيرا.  قمت بتصفح المواقع العربية وظهرت لي الحروف على شكل مربعات ولم أعطي ذلك اهتماما كثيرا واعتقدت أنه من السهل إضافة اللغة العربية كما حصل مسبقا في الأنظمة الكفية كوندوز وبالم وغيرها.</p><p>بعد امتلاكي للجهاز بحثت عن التعريب فلم اجد هناك طريقة لتعريب الجهاز في ذلك الوقت وحتى بعد إضافة الرووت، لايوجد إلا إضافة الخط.</p><p
dir="rtl">بما اني أحب البرمجة فقلت لابد من عمل برنامج على الأقل يمكنني من قراءة الرسائل النصية التي تشكل أهمية بالنسبة لي . في البداية كان مرسال وكان فقط لاستخدامي الشخصي ولكن قررت ان أضعه على المتجر. واستفدت كثيرا من مقترحات و ملاحظات المستخدمين فالكثير من التحديثات التي طرأت على مرسال هي استجابة لملاحظاتهم واقتراحاتهم.</p><p
dir="rtl">والجدير بالذكر ان بيئة البرمجة لتطبيقات أندرويد هي مناسبة وميسرة لعمل التطبيقات ونشرها بكل سهولة.</p><p
dir="rtl"><span
style="color: #0000ff;">وائل: ماهي الخصائص التي تميز الأندرويد عن باقي المنصات المنافسة برأيك؟ وأين ترى الأندرويد خلال السنتين القادمتين؟</span></p><p
dir="rtl">عبدالعزيز: أعتقد أن من أهم مميزات اندرويد انه مفتوح المصدر. قد لايعني ذلك كثيرا للمستخدم العادي ولكن بالنسبة للشركات صانعي الهواتف الجوالة والذكية فانه يعني لهم الكثير. نجد الان أن معظم الشركات قامت باستخدام اندرويد في بناء اجهزة الجوالات وذلك لحرية الاضافة والتعديل على عكس الانظمة المغلقة كنظام وندوز او الانظمة المحتكرة كنظام بلاك بيري او ابل. وكذلك ايضا قدرة المطورين على التعديل والتطوير على  انظمة اندرويد لاجهزتهم وجعلها مخصصة بشكل أو بآخر.</p><p
dir="rtl">بالإضافة أن دعم شركة غوغل القوي لنظام اندرويد وإلتفات المطورين له سيجعل اندرويد في المقدمة خلال السنوات القادمة. وكذلك فإن تطبيقات شركة غوغل على الأندرويد تعمل بكل كفاءة وبقوة تفوق الانظمة الأخرى كتطبيقات الخرائط وغوغل الصوتي.</p><p
style="text-align: center;" dir="rtl"><a
rel="attachment wp-att-6418" href="http://ardroid.com/2011/01/04/azizhuss-interview/android-ar-3/"><img
class="aligncenter size-full wp-image-6418" title="android-ar" src="http://ardroid.com/wp-content/uploads/2011/01/android-ar.png" alt="" width="160" height="160" /></a></p><p
dir="rtl"><span
style="color: #0000ff;">وائل: ماهي أبرز التحديات التي واجهتك عند تطوير التطبيقات العربية؟</span></p><p
dir="rtl">عبدالعزيز: طبعا أهم المعيقات هي ان اندوريد لايدعم اللغة العربية. فعلى مطور البرامج دعم اللغة العربية بنفسه من إضافة الخطوط للتطبيقات وكذلك توصيل وتركيب الحروف والكلمات.</p><p><span
style="color: #0000ff;"> وائل: هل كانت لديك خبرة سابقة في تطوير تطبيقات للأجهزة الكفية والجوالات؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>قبل تقريبا 4 سنوات اقتنيت جهاز بلاك بيري وكان يدعم قراءة العربية ولكن لايدعم الكتابة. فعملت تطبيق يمكن من خلاله كتابة الرسائل النصية وارسالها. وكان التطبيق شخصي ولم اقم بنشره .</p><p><span
style="color: #0000ff;"> وائل: بالنسبة لمشروع ال ArabicReshaper، هل اكتمل هذا المشروع أم أنك ترغب بإضافة المزيد من الخصائص إليه، وهل هناك مجال مفتوح للمطورين العرب للمساعدة في المشروع؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>بالنسبة لمشروع <a
href="http://code.google.com/p/arabicreshaper/">ArabicReshaper</a> فهو يقوم بمهمة توصيل الحروف العربية وقد اضفت عليه مؤخرا التشكيل والحركات. اعتقد انه ربما يكون هناك الحاجة لاحتواء حالات مركبة من التشكيل كوجود شدة مع كسرة او ضمة. لا اعتقد انها تعمل 100% حاليا في هذا المشروع.</p><p
dir="rtl">وكذلك عند وجود كلمات انجليزية وارقام فان ترتيب الجمل قد لايكون سليماً ويجب القيام بعمل BIDI لترتيبها بالشكل السليم.</p><p><span
style="color: #0000ff;"> وائل: ماهي المصادر التي تعلمت منها برمجة تطبيقات الأندرويد، وأيها الأفضل بالنسبة لك؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>في البداية كنت أقوم بالتدريبات المقدمة من أندرويد. وبعد ذلك استفدت من الكثير من مواقع الانترنت مثل <a
href="http://www.anddev.org/">http://www.anddev.org/</a> . لكن أرى أن هذه الكتب من المطور Mark Murphy قدمت لي طرق مثلى في التعامل مع بعض الصعوبات</p><p
dir="rtl"><a
href="http://commonsware.com/AndTutorials">Android Programming Tutorials</a></p><p><a
href="http://commonsware.com/Android">The Busy Coders Guide to Android Development</a></p><p><a
href="http://commonsware.com/AdvAndroid">The Busy Coders Guide to Advanced Android Development</a></p><p><span
style="color: #0000ff;"> وائل: ماهي الصعوبات والعقبات التي تتمنى حلها سريعا من قبل غوغل (تحسينات في المتجر، الدعم العربي الرسمي، &#8230;) ؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>بالتأكيد الدعم العربي الرسمي لأنه سيزيد من مستخدمي اندرويد العرب. وكذلك دعم الشراء من المتجر للدول العربية.  وشي آخر اعتقد أنه يجب الإهتمام به لأنه يشكل أمور سلبية للمطورين ويمكن النظر له أنه شي ايجابي بالنسبة للمستخدمين وهو حماية حقوق التطبيقات. فسرعان ما تجد أي تطبيق متوفر مجاني عن طريق بعض المواقع. مما يجعل الكثير من المطورين يعتمدون على الإعلانات التي تزعج المستخدم. كمثال لعبة Angry Birds تجدها مجانية بإعلانات بينما في أنظمة الايفون ب قيمة دولار بدون إعلانات.</p><p><span
style="color: #0000ff;"> وائل: ماهي أكثر ٣ تطبيقات تستخدمها؟</span></p><p>عبدالعزيز: gmail</p><p>google Map</p><p>adhan alarm</p><p
dir="rtl"><span
style="color: #0000ff;">وائل: من هو ابراهيم الذي سميت تطبيق لوحة المفاتيح بإسمه ؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>ابراهيم اسم غالي علي فهو اسم والدي الغالي واسم ولدي. سميت لوحة المفاتيح باسم ولدي ابراهيم اسأل الله العلي العظيم أن يشفيه ويشفي جميع مرضى التوحد.</p><p
dir="rtl"><span
style="color: #0000ff;">وائل: مشاريعك الحالية والمستقبلية؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>حاليا جل اهتمامي بإكمال دراستي. ربما اقوم ببعض الإضافات البسيطة للبرامج السابقة او عمل برامج بسيطة.</p><p
dir="rtl"><span
style="color: #0000ff;">وائل: ماهي نصائحك لمطوري الأندرويد العرب؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>التركيز على بعض الافكار التي قد تلقى رواجا في المجتمع العربي حتى لو كانت هذي الافكار مستقاه من بعض البرامج  الأجنبية ولكن يجب تكييفها لمجتمعاتنا.</p><p
dir="rtl"><span
style="color: #0000ff;">وائل: من هو عبدالعزيز؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>اسمي عبدالعزيز بن ابراهيم الحسين  من السعودية، متزوج ولي بنت (ريما) وولد (ابراهيم). ادرس حاليا في مرحلة الدكتوراة في <a
href="http://www.uci.edu/">جامعة كاليفورنيا &#8211; ايرفاين</a> في تخصص هندسة الحاسب &#8211; عمارة الحسابات. حصلت على الماجستير من جامعة جنوب كاليفورنيا والبكالريوس من جامعة الملك سعود. أعمل أيضا في <a
href="http://www.kacst.edu.sa/en/Pages/default.aspx">مدينة الملك عبدالعزيز للعلوم والتقنية</a>.</p><p><span
style="color: #0000ff;"> وائل: كلمة أخيرة.</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>تقبلوا تحياتي ودعواتكم لإبراهيم بالشفاء.</p><p
dir="rtl"><strong>نشكر المطور عبدالعزيز الحسين لإعطائنا هذه الفرصة، وندعو لإبراهيم بالشفاء، ونتمنى لعبدالعزيز كل التوفيق في دراسته.</strong></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/01/04/azizhuss-interview/feed/</wfw:commentRss> <slash:comments>31</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/01/android-ar.jpg" /> </item> <item><title>سلسلة دروس تطوير تطبيقات الأندرويد 2 (فيديو) – الحلقة 4 (الأخيرة)</title><link>http://ardroid.com/2011/01/03/android-programming-series-2-ep4/</link> <comments>http://ardroid.com/2011/01/03/android-programming-series-2-ep4/#comments</comments> <pubDate>Mon, 03 Jan 2011 05:48:07 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android Development]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطوير أندرويد]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6365</guid> <description><![CDATA[مرحبا.. هاقد وصلنا الى الحلقة الرابعة والأخيرة من هذه السلسلة، والتي نقوم فيها بعمل واجهة تعرض معلومات المهمة عند الضغط عليها. كما أنه يمكننا حذفها. تعرضنا أيضا لعدة مواضيع أخرى ومنها رفع الخطوط العربية الى المحاكي وكيفية توقيع التطبيق وتهيئته للنشر في المتجر (تم شرحها بشكل سريع). مع نهاية هذه السلسلة، أرغب منكم أعزائي كتابة&#8230; <a
href="http://ardroid.com/2011/01/03/android-programming-series-2-ep4/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<p>مرحبا.. هاقد وصلنا الى الحلقة الرابعة والأخيرة من هذه السلسلة، والتي نقوم فيها بعمل واجهة تعرض معلومات المهمة عند الضغط عليها. كما أنه يمكننا حذفها. تعرضنا أيضا لعدة مواضيع أخرى ومنها رفع الخطوط العربية الى المحاكي وكيفية توقيع التطبيق وتهيئته للنشر في المتجر (تم شرحها بشكل سريع).</p><p><strong>مع نهاية هذه السلسلة، أرغب منكم أعزائي كتابة أي ملاحظة من شأنها تطوير السلسلات القادمة (طريقة الأداء، استعراض الدروس، الشرح، الاخراج،&#8230;) وأتقبل جميع الملاحظات بصدر رحب، وقلب ممتن وشاكر.</strong></p><p>متابعة ممتعة وإلى اللقاء في سلسلة قادمة.</p><p>ملفات الحلقة: <a
href="http://wa2el.net/documents/4thEpisodeFiles.zip">هنا</a>.</p><p>لتحميل الحلقة: <a
href="http://blip.tv/file/get/Ardroid-Ardroids2e4757.mp4">هنا</a>.</p><p><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="510" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="src" value="http://blip.tv/play/AYKY_QsA" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="640" height="510" src="http://blip.tv/play/AYKY_QsA" allowfullscreen="true"></embed></object></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/01/03/android-programming-series-2-ep4/feed/</wfw:commentRss> <slash:comments>11</slash:comments> <enclosure
url="http://blip.tv/file/get/Ardroid-Ardroids2e4757.mp4" length="0" type="video/mp4" /> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/12/img_199912_android-lab1.jpeg" /> </item> <item><title>سلسلة دروس تطوير تطبيقات الأندرويد 2 (فيديو) – الحلقة 3</title><link>http://ardroid.com/2010/12/30/android-programming-series-2-ep3/</link> <comments>http://ardroid.com/2010/12/30/android-programming-series-2-ep3/#comments</comments> <pubDate>Wed, 29 Dec 2010 22:25:50 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android Development]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطوير أندرويد]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6328</guid> <description><![CDATA[مرحبا.. نقدم لكم الحلقة الثالثة من هذه السلسلة والتي نقوم فيها بإضافة واجهة إنشاء مهمة جديدة وربطها بخريطة غوغل، بالإضافة لعدة أمور أخرى. متابعة ممتعة ملفات الحلقة: هنا. لتحميل الحلقة: هنا.]]></description> <content:encoded><![CDATA[<p>مرحبا.. نقدم لكم الحلقة الثالثة من هذه السلسلة والتي نقوم فيها بإضافة واجهة إنشاء مهمة جديدة وربطها بخريطة غوغل، بالإضافة لعدة أمور أخرى.</p><p>متابعة ممتعة <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>ملفات الحلقة: <a
href="http://wa2el.net/documents/3rdEpisodeFiles.zip">هنا</a>.</p><p>لتحميل الحلقة: <a
href="http://blip.tv/file/get/Ardroid-Ardroids2e3283.mp4">هنا</a>.</p><p><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="510" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="src" value="http://blip.tv/play/AYKYk0MA" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="640" height="510" src="http://blip.tv/play/AYKYk0MA" allowfullscreen="true"></embed></object></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/12/30/android-programming-series-2-ep3/feed/</wfw:commentRss> <slash:comments>8</slash:comments> <enclosure
url="http://blip.tv/file/get/Ardroid-Ardroids2e3283.mp4" length="0" type="video/mp4" /> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/12/img_199912_android-lab1.jpeg" /> </item> <item><title>تطبيق (Call you later) بأيد عربية</title><link>http://ardroid.com/2010/12/28/call-you-later-app/</link> <comments>http://ardroid.com/2010/12/28/call-you-later-app/#comments</comments> <pubDate>Tue, 28 Dec 2010 20:19:52 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[Call you later]]></category> <category><![CDATA[تطبيقات عربية]]></category> <category><![CDATA[سوق أندرويد]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6285</guid> <description><![CDATA[يهمنا دائما في أردرويد التواصل مع المجموعات والأفراد العرب الذين يقدمون شيئا مفيدا للمستخدم العربي أو الأجنبي عموما في مجال أنظمة وتطبيقات الأندرويد. كما يهمنا إبراز أعمالهم وذلك لإيماننا جميعا بأهمية هذه الخطوة في تحفيز المطورين العرب للمضي قدما في تطوير وتوفير تطبيقات مميزة تفيد المستخدمين وتترك بصمة فريدة بين باقي التطبيقات العالمية. نستعرض اليوم&#8230; <a
href="http://ardroid.com/2010/12/28/call-you-later-app/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="360" height="600" src="http://ardroid.com/wp-content/uploads/2010/12/device1.png" class="attachment-large" alt="device1" title="device1" /><p>يهمنا دائما في أردرويد التواصل مع المجموعات والأفراد العرب الذين يقدمون شيئا مفيدا للمستخدم العربي أو الأجنبي عموما في مجال أنظمة وتطبيقات الأندرويد. كما يهمنا إبراز أعمالهم وذلك لإيماننا جميعا بأهمية هذه الخطوة في تحفيز المطورين العرب للمضي قدما في تطوير وتوفير تطبيقات مميزة تفيد المستخدمين وتترك بصمة فريدة بين باقي التطبيقات العالمية.</p><p>نستعرض اليوم تطبيقا من تطوير مجموعة من ٣ شباب من فلسطين يسمون فريقهم <a
href="http://palidroid.blogspot.com/">PaliDroid Team</a>. تواصلنا معهم وأبدوا حماسا واهتماما بنشر ثقافة تطوير تطبيقات الأندرويد لإيمانهم بأن زيادة تطوير التطبيقات العربية تحتم على شركة غوغل النظر بشكل أكثر جدية للمنطقة العربية. كما يحلمون بأن نقف يوما في مصاف الدول المتقدمة تقنيا، وطبعا نشاركهم جميعا هذا الحلم الذي يتوجب أن يقترن بعمل جاد وعزيمة فولاذية لا تعرف الاستكانة.</p><p>التطبيق هو <a
href="http://palidroid.blogspot.com/p/call-you-later.html">Call you later</a> والذي يقوم بالرد على المكالمات التي لا يستطيع المستخدم الرد عليها برسالة SMS معرفة مسبقا من قبله. بمعنى آخر، التطبيق يعمل كآلة رد بحسب الأوضاع التي يكون عليها المستخدم ( مشغول في اجتماع، نائم، في محاضرة .. الخ).</p><p
style="text-align: center;"><a
rel="attachment wp-att-6296" href="http://ardroid.com/2010/12/28/call-you-later-app/device1-2/"><img
class="aligncenter size-full wp-image-6296" title="device1" src="http://ardroid.com/wp-content/uploads/2010/12/device1.png" alt="" width="288" height="480" /></a></p><p>يمكنكم إضافة الوضع الخاص بكم وتحديد الرسالة التي سيتم الرد بها آليا على المتصل في حال تفعيل الوضع.</p><p
style="text-align: center;"><a
rel="attachment wp-att-6295" href="http://ardroid.com/2010/12/28/call-you-later-app/device2-2/"><img
class="aligncenter size-full wp-image-6295" title="device2" src="http://ardroid.com/wp-content/uploads/2010/12/device2.png" alt="" width="288" height="480" /></a></p><p>يُمكّنكم التطبيق من تحديد الأوضاع الأكثر استخداما (بجانبها نجمة) حتى تظهر عند الاتصال أو في الويدجيت على شاشة الجهاز الرئيسية (ويمكنكم تفعيل وتعطيل الوضع من الويدجيت مباشرة).</p><p
style="text-align: center;"><a
rel="attachment wp-att-6294" href="http://ardroid.com/2010/12/28/call-you-later-app/device7/"><img
class="aligncenter size-full wp-image-6294" title="device7" src="http://ardroid.com/wp-content/uploads/2010/12/device7.png" alt="" width="288" height="480" /></a><a
rel="attachment wp-att-6293" href="http://ardroid.com/2010/12/28/call-you-later-app/device4/"><img
class="aligncenter size-full wp-image-6293" title="device4" src="http://ardroid.com/wp-content/uploads/2010/12/device4.png" alt="" width="288" height="480" /></a><a
rel="attachment wp-att-6292" href="http://ardroid.com/2010/12/28/call-you-later-app/device5/"><img
class="aligncenter size-full wp-image-6292" title="device5" src="http://ardroid.com/wp-content/uploads/2010/12/device5.png" alt="" width="288" height="480" /></a></p><p>في حال استقبال المكالمة أثناء الوجود في اجتماع مثلا فإن أحد الأمرين سيحصل:</p><p>- في حال كان الوضع مفعلا، فإن رفض المكالمة أو تجاهلها سينتج عنه إرسال الرسالة SMS للمتصل.</p><p>- في حال كان الوضع غير مفعل، ستظهر الأوضاع التي تم تفضيلها مسبقا (يجاورها النجمة) وفي حال الضغط على إحداها، سيتم إنهاء المكالمة وإرسال الرسالة المقترنة بالوضع للمتصل. (كما في الصورة أدناه)</p><p
style="text-align: center;"><a
rel="attachment wp-att-6291" href="http://ardroid.com/2010/12/28/call-you-later-app/device6/"><img
class="aligncenter size-full wp-image-6291" title="device6" src="http://ardroid.com/wp-content/uploads/2010/12/device6.png" alt="" width="288" height="480" /></a></p><p>ما يميز التطبيق أيضا هو دعمه لعدة لغات: عربية، إنجليزية، فرنسية، عبرية، سويدية، صينية، تايوانية، بولندية.</p><p>التطبيق ليس مجاني وقيمته في <a
href="http://www.androidzoom.com/android_applications/tools/call-you-later_pcwj.html">السوق</a> ٠,٩٩ دولار، أي أنه للأسف لا يظهر في متجر الأندرويد عند البحث عليه في الدول العربية (طبعا الوضع مختلف في فلسطين بحكم وجود الكيان الصهيوني، ولكن يمكن شراء التطبيقات المدفوعة وتخطي هذه العقبة بإنشاء حساب في Google Checkout وربطه بحساب الجيميل ومن ثم تنصيب تطبيق Market Enabler ولكن العملية تعمل على الأجهزة التي تملك صلاحيات الجذر Root).</p><p>نتمنى لفريق PaliDroid كل التوفيق والنجاح وبانتظار جديدهم <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p><a
rel="attachment wp-att-6288" href="http://ardroid.com/2010/12/28/call-you-later-app/chart-5/"><img
class="aligncenter size-full wp-image-6288" title="chart" src="http://ardroid.com/wp-content/uploads/2010/12/chart.png" alt="" width="125" height="125" /></a></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/12/28/call-you-later-app/feed/</wfw:commentRss> <slash:comments>25</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/12/CallULater512x512.png" /> </item> <item><title>سلسلة دروس تطوير تطبيقات الأندرويد 2 (فيديو) – الحلقة 2</title><link>http://ardroid.com/2010/12/26/android-programming-series-2-ep2/</link> <comments>http://ardroid.com/2010/12/26/android-programming-series-2-ep2/#comments</comments> <pubDate>Sun, 26 Dec 2010 20:28:17 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android Development]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطوير أندرويد]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6270</guid> <description><![CDATA[مرحبا  هاهي الحلقة الثانية.. مدتها  ساعة تقريبا، وتستعرض هذه الحلقة المواضيع التالية: - شرح مفهوم الـ Adapter. - تنفيذ الواجهة البصرية لكل عنصر\مهمة. - عمل الواجهة الرئيسية. - ربط الواجهة بالـ Adapter. - إضافة بعض المهام لتجربة العملية. يمكنكم تحميل ملفات الشيفرة المصدرية (سورس كود) بالضغط هنا.]]></description> <content:encoded><![CDATA[<p>مرحبا <img
src="http://ardroid.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" /> هاهي الحلقة الثانية.. مدتها  ساعة تقريبا، وتستعرض هذه الحلقة المواضيع التالية:</p><p
dir="rtl">- شرح مفهوم الـ Adapter.</p><p
dir="rtl">- تنفيذ الواجهة البصرية لكل عنصر\مهمة.</p><p
dir="rtl">- عمل الواجهة الرئيسية.</p><p
dir="rtl">- ربط الواجهة بالـ Adapter.</p><p
dir="rtl">- إضافة بعض المهام لتجربة العملية.</p><p>يمكنكم تحميل ملفات الشيفرة المصدرية (سورس كود) <a
href="http://wa2el.net/documents/2ndEpisodeFiles.zip">بالضغط هنا</a>.</p><p><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="510" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="src" value="http://blip.tv/play/AYKXvBQA" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="640" height="510" src="http://blip.tv/play/AYKXvBQA" allowfullscreen="true"></embed></object></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/12/26/android-programming-series-2-ep2/feed/</wfw:commentRss> <slash:comments>10</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/12/img_199912_android-lab.jpeg" /> </item> <item><title>سلسلة دروس تطوير تطبيقات الأندرويد 2 (فيديو) – الحلقة 1</title><link>http://ardroid.com/2010/12/23/android-programming-series-2-ep1/</link> <comments>http://ardroid.com/2010/12/23/android-programming-series-2-ep1/#comments</comments> <pubDate>Thu, 23 Dec 2010 07:28:00 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android Development]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطوير أندرويد]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6183</guid> <description><![CDATA[مرحبا نضع بين أيديكم الحلقة الأولى.. مدتها ٤٨ دقيقة تقريبا، وتستعرض هذه الحلقة المواضيع التالية: - إنشاء تطبيق جديد. - رؤية وتعديل ملف المانيفست Manifest. - عمل بعض الدوال والمجموعات المساعدة. &#8211;مجموعة المهمة TaskItem. &#8211; إنشاء قاعدة البيانات (تتطلب معرفة بسيطة بعبارات SQL) &#8211; إنشاء المجموعة الأم للتطبيق. يمكنكم تحميل ملفات الشيفرة المصدرية (سورس كود)&#8230; <a
href="http://ardroid.com/2010/12/23/android-programming-series-2-ep1/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<p>مرحبا <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> نضع بين أيديكم الحلقة الأولى.. مدتها ٤٨ دقيقة تقريبا، وتستعرض هذه الحلقة المواضيع التالية:</p><p
dir="rtl">- إنشاء تطبيق جديد.</p><p
dir="rtl">- رؤية وتعديل ملف المانيفست Manifest.</p><p
dir="rtl">- عمل بعض الدوال والمجموعات المساعدة.</p><p
dir="rtl">&#8211;مجموعة المهمة TaskItem.</p><p
dir="rtl">&#8211; إنشاء قاعدة البيانات (تتطلب معرفة بسيطة بعبارات SQL)</p><p
dir="rtl">&#8211; إنشاء المجموعة الأم للتطبيق.</p><p>يمكنكم تحميل ملفات الشيفرة المصدرية (سورس كود) <a
href="http://wa2el.net/documents/ArdroidTasksMgr.zip">بالضغط هنا</a>.</p><div
style="margin: -10px;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="510" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="src" value="http://blip.tv/play/AYKW3CMA" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="640" height="510" src="http://blip.tv/play/AYKW3CMA" allowfullscreen="true"></embed></object></div> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/12/23/android-programming-series-2-ep1/feed/</wfw:commentRss> <slash:comments>28</slash:comments> <enclosure
id="thumbnail" url="http://c0057500.cdn1.cloudfiles.rackspacecloud.com/2010/12/img_199912_android-lab1.jpeg" /> </item> <item><title>سلسلة دروس تطوير تطبيقات الأندرويد 2 (فيديو) &#8211; الحلقة 0</title><link>http://ardroid.com/2010/12/20/android-programming-series-2-ep0/</link> <comments>http://ardroid.com/2010/12/20/android-programming-series-2-ep0/#comments</comments> <pubDate>Mon, 20 Dec 2010 14:43:25 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android Development]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطوير أندرويد]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6133</guid> <description><![CDATA[هاقد عدنا إليكم بسلسلة جديدة لتطوير تطبيقات الأندرويد. تختلف هذه السلسلة عن سلسلة الدروس التي قدمناها سابقاً بأنها ذات هدف محدد وهو العمل على تطوير تطبيق مدير مهام Task Manager من البداية الى النهاية. كما أن هذه السلسلة مرئية ويمكنكم متابعة حلقاتها عبر أردرويد أو قناتنا على موقع يوتيوب. التطبيق الذي سنتعلم تطويره خلال السلسلة عبارة&#8230; <a
href="http://ardroid.com/2010/12/20/android-programming-series-2-ep0/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="200" height="200" src="http://ardroid.com/wp-content/uploads/2010/12/img_199912_android-lab1.jpeg" class="attachment-large" alt="img_199912_android-lab" title="img_199912_android-lab" /><p>هاقد عدنا إليكم بسلسلة جديدة لتطوير تطبيقات الأندرويد. تختلف هذه السلسلة عن سلسلة الدروس <a
href="http://ardroid.com/2009/12/30/android-programming-series-l1/" target="_blank">التي قدمناها سابقاً</a> بأنها ذات هدف محدد وهو العمل على تطوير تطبيق مدير مهام Task Manager من البداية الى النهاية. كما أن هذه السلسلة مرئية ويمكنكم متابعة حلقاتها عبر أردرويد أو <a
href="http://www.youtube.com/ArdroidChannel" target="_blank">قناتنا على موقع يوتيوب</a>.</p><p>التطبيق الذي سنتعلم تطويره خلال السلسلة عبارة عن تطبيق إدارة مهام كما ذكرنا لكنه يتميز بأنك تستطيع عند إضافة المهمة تحديد مكان تنفيذها على الخريطة وبذلك تقوم بتوزيع المهام جغرافياً مما يقدم طريقة أفضل لإدارة المهام. بالإضافة إلى هذا يقدم جميع الميزات الأساسية الأخرى التي تتوقعها من مثل هذا التطبيق.</p><p>أترككم مع تفاصيل التطبيق في الحلقة رقم صفر من السلسلة. (يمكنكم اختيار 720p لمشاهدة نسخة عالية الدقة HD)</p><p><a
href="http://ardroid.com/2010/12/20/android-programming-series-2-ep0/"><em>Click here to view the embedded video.</em></a></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/12/20/android-programming-series-2-ep0/feed/</wfw:commentRss> <slash:comments>27</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/12/img_199912_android-lab1.jpeg" /> </item> <item><title>تطبيق RestDroid أول تطبيق من تطوير موقعنا :)</title><link>http://ardroid.com/2010/08/17/restdroid-app-ardroid/</link> <comments>http://ardroid.com/2010/08/17/restdroid-app-ardroid/#comments</comments> <pubDate>Tue, 17 Aug 2010 10:12:05 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[application]]></category> <category><![CDATA[development]]></category> <category><![CDATA[market]]></category> <category><![CDATA[Qaym]]></category> <category><![CDATA[RestDroid]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[تطبيق]]></category> <category><![CDATA[تطوير]]></category> <category><![CDATA[ريستدرويد]]></category> <category><![CDATA[قيم]]></category> <category><![CDATA[مفتوح المصدر]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3808</guid> <description><![CDATA[مرحبا.. بعد انقطاع طويل عن برمجة تطبيقات الأندرويد عدنا وفي جعبتنا التطويرية الكثير والكثير للحديث عنه. دعوني بداية أطلعكم على عدد من الأمور التي حصلت مؤخرا. تواصل معنا الأخ المدون الرائع محمد بدوي وعرض علينا المشاركة في إنشاء مجتمع عربي لتطوير الأندرويد أطلق عليه اسم DevDroid‪.‬org. تقوم فكرة المجتمع على التعريف ببرمجة تطبيقات الأندرويد للمهتمين&#8230; <a
href="http://ardroid.com/2010/08/17/restdroid-app-ardroid/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="175" height="175" src="http://ardroid.com/wp-content/uploads/2010/08/qrcode.png" class="attachment-large" alt="qrcode" title="qrcode" /><p
style="text-align: right">مرحبا..</p><p
style="text-align: right">بعد انقطاع طويل عن برمجة تطبيقات الأندرويد عدنا وفي جعبتنا التطويرية الكثير والكثير للحديث عنه. دعوني بداية أطلعكم على عدد من الأمور التي حصلت مؤخرا. تواصل معنا الأخ المدون الرائع <a
href="http://badwi.com/">محمد بدوي</a> وعرض علينا المشاركة في إنشاء مجتمع عربي لتطوير الأندرويد أطلق عليه اسم <a
href="http://DevDroid.org">DevDroid‪.‬org</a>. تقوم فكرة المجتمع على التعريف ببرمجة تطبيقات الأندرويد للمهتمين واحتضان مطوري الأندرويد العرب بمختلف مستوياتهم وتكوين وسط تشاركي وتفاعلي خاص بتطوير تطبيقات الأندرويد وكل ماله علاقة تقنية بالأندرويد. تتنوع أنشطة مجتمع DevDroid‪.‬org (الذي سينطلق قريبا) لتشمل إصدار كتب وتطبيقات أندرويد إضافة الى دورات ومحاضرات ومسابقات والعديد العديد من الأنشطة والفعاليات.</p><p>طبعا وافقنا على الفور وبدأنا فعليا بعدد من المبادرات والأنشطة وأهمها:</p><p>- العمل على إصدار كتابنا الأول &#8220;أندرويد ببساطة&#8221; والذي يبدأ بشرح كيفية تهيئة البيئة البرمجية لأندرويد وينتهي بشرح كامل عن كيفية تطوير تطبيقين مختلفين يستخدمان تقنيات قواعد البيانات، الاتصال بالانترنت واستخدام الواجهات البرمجية API، خرائط غوغل، والتعرض بشكل سريع لتقنية تحديد المواقع GPS. وقد اقترح الأخ محمد فكرة كتاب &#8220;أندرويد ببساطة&#8221; وعملنا عليه سوية. الكتاب مازال قيد الاعداد والكتابة وسيصدر قريبا.</p><p>- تطوير تطبيق Application متكامل يستقي معلوماته من موقع &#8220;<a
href="http://qaym.com/">قيم</a>&#8221; المعروف والذي يهتم بتقييم المطاعم في مدن العالم كاملة كأول تطبيق يطلقه المجتمع وموقعنا، موقع أردرويد. تم الانتهاء من تطوير التطبيق وعدد الأسطر البرمجية يفوق ال ١٠٠٠ سطر. ويمكنكم الاطلاع على عرض مرئي للتطبيق في أسفل المقال. <strong>التطبيق سيكون مفتوح المصدر بالكامل وسيتم شرح كيفية تطويره من الألف الى الياء على صفحات موقع مجتمع مطوري أندرويد وموقع أردرويد</strong>.</p><p>- التحضير لإقامة دورات عامة تناسب المطورين المبتدئين والمتقدمين كل على حدة.</p><p>(** سنطلعكم على آخر المستجدات باستمرار، فتابعونا <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> **)</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/08/header.jpg" rel="lightbox[3808]"><img
class="aligncenter size-full wp-image-3812" src="http://ardroid.com/wp-content/uploads/2010/08/header.jpg" alt="" width="322" height="114" /></a></p><h1>تطبيق RestDroid :</h1><p>تطبيق RestDroid يتسخدم الواجهة البرمجية التطويرية API الخاصة بموقع &#8220;قيّم&#8221; ليبني عليها المزايا التالية:</p><p>- اختيار الدولة والمدينة والبحث عن المطاعم فيها.</p><p>- اختيار الدولة والمدينة وعرض أفضل ٥٠ مطعما فيها.</p><p>- اختيار الدولة والمدينة والبحث عن مطاعم باستخدام مواصفات معينة (مطعم ايطالي، صيني، نباتي، أسماك، …).</p><p>- عرض المطاعم التي تناسب معلومات البحث وبجانبها التقييمات الخاصة بها.</p><p>- عرض المطاعم على خرائط غوغل.</p><p>- إمكانية استعراض معلومات الفروع (وقد لا يظهر بعضها على الخريطة وذلك بسبب عدم تحديد مواقعها في الأصل في موقع قيم من قبل المستخدمين).</p><p>- إمكانية استعراض تعليقات المستخدمين على المطاعم.</p><p>التطبيق يستخدم التقنيات التالية:</p><p>- الاتصال بالانترنت واستخدام ال API.</p><p>- خرائط غوغل.</p><p>مع إمكانية دمج قواعد بيانات وتقنية تحديد المواقع GPS ولكننا تركناها للمطورين المتحمسين ليساعدونا فيها <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> (وسنقوم بشرح كيفية استخدام هذه التقنيات في الشروحات التي سننشرها في موقع مجتمع تطوير أندرويد وموقع أردرويد).</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/08/AboutFF.jpg" rel="lightbox[3808]"><img
class="aligncenter size-full wp-image-3810" src="http://ardroid.com/wp-content/uploads/2010/08/AboutFF.jpg" alt="" width="322" height="432" /></a></p><p>سيكون التطبيق مفتوح المصدر بالكامل لذلك سيتمكن المبرمجون العرب من مساعدتنا في إضافة مزايا وخصائص إضافية للتطبيق.</p><p>بعض النقاط والمشاكل في التطبيق والتي ستعالج لاحقا:</p><p>- التطبيق يفترض ان الجهاز متصل بالانترنت (عبر الواي فاي أو شبكات الجوال أو غيرها) لذلك لن يعمل في حال تشغيله دون الاتصال بالانترنت مسبقا. (المعالجة يفترض أن تكون عبر اظهار رسالة خطأ للمستخدم تتيح له خيار تشغيل خاصية الشبكة اللاهوائية Wireless Network ومن ثم تشغيل التطبيق).</p><p>- التطبيق قد يتوقف عن العمل في حال تغيير وضع الجهاز من أفقي الى عمودي والعكس. (المعالجة تكون عبر التعامل الأمثل مع اختلاف وضع الجهاز بشكل برمجي).</p><p>يمكنكم البحث عن التطبيق في سوق الأندرويد &#8220;ابحث عن restdroid&#8221;. كما يمكنكم تحميل التطبيق <a
href="http://ardroid.net/apps/RestDroid.apk">مباشرة من مخدمنا كملف .apk بالضغط هنا.</a></p><p>نترككم مع مشاهدة العرض المرئي للتطبيق (الأحرف العربية في العرض لا تظهر بشكل ممتاز والسبب أننا قمنا بتشغيل التطبيق على محاكٍ غير معرب &#8220;في الواقع واجهنا مشاكل مع النسخة المعربة&#8221; فمعذرة على ذلك.. اذاً التطبيق تظهر أحرفه واضحة اذا كان جهازكم معربا بشكل سليم <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p><p><a
href="http://ardroid.com/2010/08/17/restdroid-app-ardroid/"><em>Click here to view the embedded video.</em></a></p><p><a
href="http://ardroid.com/wp-content/uploads/2010/08/qrcode.png" rel="lightbox[3808]"><img
class="aligncenter size-full wp-image-3818" src="http://ardroid.com/wp-content/uploads/2010/08/qrcode.png" alt="" width="175" height="175" /></a></p><p>تحديث:</p><p>١- واجه أحد المستخدمين مشكلة عند البحث عن مطاعم باستخدام المواصفات، السبب هو إما عدم وجود مطاعم بتلك المواصفات في قاعدة بيانات موقع قيم، أو أن سرعة الاتصال بالانترنت بطيئة فحصل خطأ يسمى ب TimeOut.. الحل هو استخدام اتصال سريع &#8220;لأن عملية البحث في هذا النوع مكلفة وذلك لأن دعم ال API الخاص بقيم لهذا النوع من البحث يحتاج تعديلا&#8221;.</p><p>٢-واجه أحد المستخدمين مشكلة في دقة الشاشة Resolution حيث أن نجوم التقييم تظهر كبيرة وتغطي على علامات تقييم المطاعم. مراعاة دقة الشاشات هي عملية صعبة للمطور خصوصا وأن الشركات المستخدمة لأندرويد لا تتبع معيارا واحدا لهذه الخاصية. الحل سيكون قريبا جدا بطرح نسخة تظهر فيها النجوم بحجم أصغر.</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/08/17/restdroid-app-ardroid/feed/</wfw:commentRss> <slash:comments>49</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/08/footer.jpg" /> </item> <item><title>مقارنة أمنية بين الأندرويد والآيفون</title><link>http://ardroid.com/2010/08/12/android-iphone-security-comparison/</link> <comments>http://ardroid.com/2010/08/12/android-iphone-security-comparison/#comments</comments> <pubDate>Thu, 12 Aug 2010 14:49:55 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دراسات وتحليلات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[app market]]></category> <category><![CDATA[comparison]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[lookout]]></category> <category><![CDATA[openness]]></category> <category><![CDATA[security]]></category> <category><![CDATA[آيفون]]></category> <category><![CDATA[أذونات]]></category> <category><![CDATA[أمنية]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برامج]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[تفوق]]></category> <category><![CDATA[سوق]]></category> <category><![CDATA[مقارنة]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3708</guid> <description><![CDATA[تابعنا في الفترة الماضية عددا كبيرا من الأخبار التي تدور حول أمن نظام الأندرويد، وتزامن ذلك مع صدور عدد من الأوراق والأبحاث في المؤتمرات المختصة بمواضيع الأمن والحماية ك Defcon و Blackhat والتي كشفت عن وجود عدد من التطبيقات التي تستغل ثغرات متواجدة في ذلك النظام. وقد قمنا بنشر دراسة أمنية شاملة عن نظام الأندرويد&#8230; <a
href="http://ardroid.com/2010/08/12/android-iphone-security-comparison/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="404" height="234" src="http://ardroid.com/wp-content/uploads/2010/08/linux_android_iphone_thumb.png" class="attachment-large" alt="linux_android_iphone_thumb" title="linux_android_iphone_thumb" /><p
style="text-align: right">تابعنا في الفترة الماضية عددا كبيرا من الأخبار التي تدور حول أمن نظام الأندرويد، وتزامن ذلك مع صدور عدد من الأوراق والأبحاث في المؤتمرات المختصة بمواضيع الأمن والحماية ك <a
href="http://www.defcon.org/">Defcon</a> و <a
href="http://www.blackhat.com">Blackhat</a> والتي كشفت عن وجود عدد من التطبيقات التي تستغل ثغرات متواجدة في ذلك النظام. وقد قمنا بنشر <a
href="http://ardroid.com/wp-content/uploads/2010/07/%D8%AF%D8%B1%D8%A7%D8%B3%D8%A9-%D8%A3%D9%85%D9%86%D9%8A%D8%A9-%D9%84%D9%86%D8%B8%D8%A7%D9%85-%D8%A7%D9%84%D8%A3%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF.pdf">دراسة أمنية شاملة عن نظام الأندرويد</a> ورد فيها وصف متعمق عن المشاكل الأمنية التي يواجهها النظام بالفعل والاجراءات المتوجب اتباعها لتعزيز أمن نظام الأندرويد.</p><p
style="text-align: right">أثارت هذه الأحداث ردودا وتفاعلا أوصلها بشكل طبيعي لطرح السؤال التالي: هل نظام الأندرويد أفضل من نظام الآيفون iOS من الناحية الأمنية أم العكس؟ستحاول هذه المقالة الإجابة على هذا التساؤل بشكل موضوعي مستعينة بعدد من المصادر التي سنذكرها في أسفل المقالة.</p><p>احتدم النقاش في الفترة الأخيرة حول أمن نظامي الأندرويد والآيفون، فمن جهة الآيفون، لعب ال <a
href="http://en.wikipedia.org/wiki/IOS_jailbreaking">Jailbreak</a> (الذي يقوم بتفعيل خصائص كانت مغلقة في نظام التشغيل، ما يجعلها عرضة لسوء الاستخدام من بعض التطبيقات) دورا في هذا النقاش، ومن جهة الأندرويد، لعب التطبيق الخاص بلوحات الخلفية Wallpaper والذي اتضح بأنه يتحصل على معلومات سرية (<a
href="http://www.pcworld.com/article/202610/google_android_wallpaper_apps_were_not_security_threats.html">ولكن مطوريه في النهاية أعلنوا بأنهم لم يستخدموا تلك المعلومات بشكل مسيء</a>) دوره في هذا الشأن. ولكن مجلة <a
href="http://www.pcworld.com">PCWorld</a> الشهيرة وقفت بجانب الأندرويد وقالت بأنها تؤمن بأن تطبيقات الأندرويد أفضل أمنيا من تطبيقات الآيفون للأسباب التالية: (<em>بحسب المصدر الأول</em>)</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/08/iphone-vs-android.jpg" rel="lightbox[3708]"><img
class="aligncenter size-full wp-image-3713" src="http://ardroid.com/wp-content/uploads/2010/08/iphone-vs-android.jpg" alt="" width="420" height="251" /></a></p><p><strong>أذونات التطبيق Application Permission:</strong></p><p>في الأندرويد، كل تطبيق يتم تشغيله في عملية process مستقلة ما يجعله غير قادر بشكل افتراضي من دخول بيانات التطبيقات الأخرى، ويقترن بهذا عدد من الأذونات التي تخبر النظام صراحة بالموارد التي يمكن للتطبيق استخدامها. (للاستزادة حول هذه الآلية، ننصحكم بمراجعة <a
href="http://ardroid.com/wp-content/uploads/2010/07/%D8%AF%D8%B1%D8%A7%D8%B3%D8%A9-%D8%A3%D9%85%D9%86%D9%8A%D8%A9-%D9%84%D9%86%D8%B8%D8%A7%D9%85-%D8%A7%D9%84%D8%A3%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF.pdf">الدراسة الأمنية التي نشرناها في أردرويد</a>). أما في الآيفون فالموضوع مختلف. فالتطبيقات متماثلة ويمكنها استخدام عدد من موارد الجهاز افتراضيا و دون الرجوع للمستخدم أو إخباره. بمعنى أن مستخدمي الآيفون لا يعرفون الموارد وطبيعة المعلومات التي سيستخدمها التطبيق فعليا بعكس الموجود في تطبيقات الأندرويد والتي نعلم ما تريد استخدامه ونمنحها الإذن عند عملية التنصيب.</p><p><strong>أسواق التطبيقات App Markets:</strong></p><p>كما نعرف فإن سوق الأندرويد يمنح المستخدمين حرية التحكم واختيار التطبيق الذي يريدونه، وتقع عليهم المسؤولية في قراءة تقييمات المستخدمين السابقين ومنح الأذونات التي يطلبها التطبيق عند تنصيبه (وربما رفض منحه اياها). ولكن في سوق الآيفون، نرى أن أبل تمارس دور الوصاية بمنح نفسها حرية التحكم بالتطبيقات المتواجدة في السوق، وهذه العملية قد يبررها البعض بأنها لتعزيز الأمن والحماية، ولكنها في الواقع عملية غامضة وغير واضحة الآلية ما يجعلنا نتساءل عن الجوانب التي تتحقق منها أبل قبل منح تطبيق معين إذن الدخول الى السوق. من المنطقي أن نتساءل أيضا عن مدى إمكانية أبل من التحقق من مئات وآلاف التطبيقات الجديدة التي يتم التقدم بطلب رفعها الى السوق يوميا! ربما في أفضل الحالات، بحسب المجلة، ما تقوم به أبل هو التحقق من هوية المطور وبأن تطبيقه ينفذ ما وعد بتنفيذه. وهذا يجعل من السهولة الشديدة لمطور سيء إضافة كود برمجي خبيث في تطبيقه الذي سيمنح رخصة الدخول الى السوق.</p><p>وبحسب المجلة أيضا، أعلنت مؤسسة بحثية في مجال أمن المعلومات وهي <a
href="https://www.mylookout.com/">Lookout</a> أن احتمالية تمكن تطبيق على نظام الأندرويد من دخول معلومات جهات الاتصال Contact List أو استخدام الجي بي اس لتحديد مكان المستخدم أقل من الاحتمالية الموجودة في تطبيقات الآيفون!</p><p><strong>الانفتاح (مفتوح المصدر) Openness:</strong></p><p>الأندرويد نظام مفتوح المصدر، ومن ناحية أمنية هذه ميزة جبارة ونرى تأثيراتها من حولنا. فمهما بلغ عدد القائمين على نظام الآيفون &#8220;مغلق المصدر&#8221; ومهما بلغت كفاءتهم، لن تتغلب خبراتهم على الآلاف والملايين من المطورين الذين يمكنهم قراءة الشفرة المصدرية لنظام الأندرويد وتعديلها.</p><p>أثناء إعدادي لهذه المقالة، ولكي أكون موضوعيا، بحثت عن مقالات ترى تفوق الآيفون أمنيا على الأندرويد، فوصلت لإحداها (<em>المصدر الثاني</em>) والتي ترى في تحكم أبل بسوق التطبيقات وما ينشر فيه نقطة تفوق على الأندرويد. وذكر الكاتب بأن فريقا من أبل يقيم التطبيق قبل طرحه في السوق، وبأن ما نسبته ١٠٪ من التطبيقات المقدمة يتم رفضها كونها تحاول الاستيلاء على معلومات شخصية أو احتوائها على محتوى غير ملائم، أو أنها تساعد المستخدم على كسر القانون. ولكن المقالة لم تجب على كيفية عمل هذه الآلية، أي آلية التقييم، ولم تجب على السؤال المنطقي الخاص بكيفية مواكبة فريق أبل لتقييم العدد الهائل من التطبيقات المتقدم بها يوميا.</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/08/iphone-vs-android-1e.jpg" rel="lightbox[3708]"><img
class="aligncenter size-full wp-image-3714" src="http://ardroid.com/wp-content/uploads/2010/08/iphone-vs-android-1e.jpg" alt="" width="321" height="280" /></a></p><p>قامت المقالة أيضا بانتقاد آلية الأذونات Permissions الموجودة في تطبيقات أندرويد وذكرت بأن من عيوبها أن التطبيقات قد تتحصل على أذونات لا يكون المستخدم ملما بخطر منحها، كما أن التطبيق قد يستغل إذنا من صلب عمله لأغراض أخرى (مثلا تطبيق لعبة يتحصل على إذن استخدام الانترنت، ولكنه إضافة الى إرسال معلومات متعلقة باللعبة، يقوم بإرسال معلومات أخرى الى جهات أخرى). بالإضافة الى ذلك، ذكر كاتب المقالة أن المستخدم قد لا يرغب بالتفكير وإجهاد نفسه في المخاطر الأمنية التي قد تنتج بتنصيب تطبيق معين.</p><p>نعم هذه المخاطر ممكنة الحصول ولكن لا يمكن اعتبارها نقاط ضعف تمنح الآيفون تفوقا على الأندرويد وذلك لسبب بسيط وهو اعتماد كاتب المقال وثقته المطلقة بفريق أبل، بل يبدو أن الكاتب يمتدح ثقافة تصدير الفكر الى جهات أخرى لتقرر بدلا عنك ما يناسبك ومالا يناسبك، بدلا من مشاركتك بصنع ذلك الخيار ودعوتك للتثقف أمنيا.</p><p>تعتبر هذه المقالة أن امكانية مسح محتويات الآيفون تلقائيا بعد عشر محاولات خاطئة لإدخال رمز الدخول (وهي خاصية يمكن تفعيلها في الآيفون) ميزة إيجابية تتغلب على الأندرويد، بالإضافة الى إمكانية اجراء عملية مسح للبيانات عن بعد في الآيفون. وقذ ذكر الكاتب بأن هذه الخواص غير موجودة في نظام الأندرويد بشكل افتراضي، على أن هناك تطبيقات على الأندرويد (كال <a
href="https://www.wavesecure.com/">Wave Secure</a>) توفر هذه الخصائص، ولكن الكاتب ذكر أن هذه التطبيقات لا تتكامل وتندمج جيدا بنظام الأندرويد (ولكنه لم يبين كيفية توصله لهذا الاستنتاج ولا الجوانب التي اعتمدها في تقييمه!!).</p><p>خصائص أخرى يتميز بها الآيفون، بحسب المقالة، هي إمكانية تحديد وقت طلب إدخال رمز الحماية\القفل أي بعد دقيقة، ١٥ دقيقة، وغيرها على عكس الأندرويد الذي يطلبها منك كل مرة تشغل بها الشاشة.</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/08/linux_android_iphone_thumb.png" rel="lightbox[3708]"><img
class="aligncenter size-full wp-image-3715" src="http://ardroid.com/wp-content/uploads/2010/08/linux_android_iphone_thumb.png" alt="" width="323" height="187" /></a></p><p>انتهت المقالة بتمني الكاتب من ان تنتهج أبل آلية الأذونات واقتران الموارد بها للتطبيقات كقيمة مضافة على ما تفعله أصلا من تقييم للتطبيقات قبل نشرها في السوق، ولكن برأينا هذا تمنٍ يصعب تحقيقه والسبب يكمن في عمارة Architecture نظام الآيفون الذي يمنح كل تطبيق صلاحيات يمكن اعتبارها صلاحيات الجذر root بشكل افتراضي بعكس الأندرويد، وتغيير هذه العمارة هو أمر ليس بالسهل.</p><p>ما رأيكم؟</p><p>(نحن نعرف حساسية هذا النوع من المواضيع، لذلك نطلب منكم النقاش بهدوء)</p><p>[<a
href="http://www.pcworld.com/businesscenter/blogs/bizfeed/202758/rss.html?asid=20658085">المصدر الأول</a>] [<a
href="http://www.technologyreview.com/communications/24944/page1/">المصدر الثاني</a>]</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/08/12/android-iphone-security-comparison/feed/</wfw:commentRss> <slash:comments>16</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/08/android_iphone_thumb.jpg" /> </item> <item><title>دراسة أمنية شاملة لنظام الأندرويد (الجزء ٣/٣)</title><link>http://ardroid.com/2010/08/01/comprehensive-android-security-assessment3/</link> <comments>http://ardroid.com/2010/08/01/comprehensive-android-security-assessment3/#comments</comments> <pubDate>Sun, 01 Aug 2010 09:02:32 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دراسات وتحليلات]]></category> <category><![CDATA[Access Control]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[assessment]]></category> <category><![CDATA[attack]]></category> <category><![CDATA[Availability]]></category> <category><![CDATA[DoS]]></category> <category><![CDATA[IDS]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[Mocana]]></category> <category><![CDATA[NetFilter]]></category> <category><![CDATA[root]]></category> <category><![CDATA[Savant Protection]]></category> <category><![CDATA[security]]></category> <category><![CDATA[security mechanisms]]></category> <category><![CDATA[security solutions]]></category> <category><![CDATA[SELinux]]></category> <category><![CDATA[services]]></category> <category><![CDATA[SMobile]]></category> <category><![CDATA[VPN]]></category> <category><![CDATA[أمن المعلومات]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[ثغرات]]></category> <category><![CDATA[حلول أمنية]]></category> <category><![CDATA[حماية]]></category> <category><![CDATA[دراسة]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3492</guid> <description><![CDATA[نقدم لكم الجزء الثالث والأخير من الدراسة التي كنا قد نشرنا جزأيها الأول والثاني وفيهما تحدث معدوا الدراسة عن الآليات الأمنية لنظام الأندرويد والتقييم الأمني لإطار عمل الأندرويد. وكما وعدناكم، ها نحن نضع بين أيديكم الدراسة كاملة في ملف PDF تجدون رابطه في آخر الجزء الثالث. الباب الثالث حلول أمنية لتحسين أمن وحماية نظام الأندرويد أفصحت&#8230; <a
href="http://ardroid.com/2010/08/01/comprehensive-android-security-assessment3/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="489" height="591" src="http://ardroid.com/wp-content/uploads/2010/07/table3mod.jpg" class="attachment-large" alt="table3mod" title="table3mod" /><p
style="text-align: right">نقدم لكم الجزء الثالث والأخير من الدراسة التي كنا قد نشرنا <a
href="http://ardroid.com/2010/07/26/comprehensive-android-security-assessment1/">جزأيها الأول</a> و<a
href="http://ardroid.com/2010/07/29/comprehensive-android-security-assessment2/">الثاني</a> وفيهما تحدث معدوا الدراسة عن الآليات الأمنية لنظام الأندرويد والتقييم الأمني لإطار عمل الأندرويد. وكما وعدناكم، ها نحن نضع بين أيديكم الدراسة كاملة في <strong>ملف PDF تجدون رابطه في آخر الجزء الثالث</strong><strong>.</strong></p><h1>الباب الثالث</h1><h2><strong> حلول أمنية لتحسين أمن وحماية نظام الأندرويد</strong></h2><p>أفصحت العديد من الشركات عن نواياها لتقديم حلول خاصة بالأندرويد. على سبيل المثال في ٢٠٠٨، طرحت <a
href="http://www.smobilesystems.com/">SMobile</a> حلا أمنيا على <a
href="http://www.appscout.com/2009/02/smobile_launches_android_secur.php">أجهزة الأندرويد يتضمن برنامجا للحماية من الفيروسات والسرقات</a>. كما قامت شركة <a
href="http://www.savantprotection.com/en/index.php">Savant Protection</a> المتخصصة في حلول منع التطفل <a
href="http://en.wikipedia.org/wiki/Intrusion_prevention_system">Intrusion Prevention</a> في مارس ٢٠٠٨ بالإعلان عن توفير نسخة من برنامجها Savant Technology على الأندرويد. وشركة <a
href="http://www.mocana.com/">Mocana</a> دخلت المجال أيضا بتوفير حل تقني على الأندرويد يملك الميزات التالية: متصفح آمن، عميل آمن للشبكات الافتراضية <a
href="http://en.wikipedia.org/wiki/Virtual_private_network">VPN</a>، حماية من البرمجيات الضارة، تحديث آمن للبرامج وقدرة على إقلاع نظام التشغيل بشكل آمن Secure Boot، التعامل مع الوثائق الأمنية بشكل آمن Digital Certificates Handling للقيام بعملية مصادقة Authenticate الأجهزة و الشبكة والأفراد. وهناك حل أمني آخر مقدم من DroidHunter.</p><p>يفترض الباحثون في هذه الدراسة امكانية تصدير Porting الحلول الأمنية للشركات المعروفة (<a
href="http://www.symantec.com/">Symantec</a>, <a
href="http://www.f-secure.com/">F-Secure</a>, <a
href="http://www.mcafee.com/">McAfee</a>,&#8230;) على منصة الأندرويد ومن أهم المزايا التي ستملكها هذه الحلول في حال تم نشرها خاصيتي الحماية من الفيروسات والكشف عن وجود متطفلين <a
href="http://en.wikipedia.org/wiki/Intrusion_detection_system">IDS</a>.</p><p>يمكن للمستخدمين، بالإضافة للتطبيقات والحلول السابقة، اتخاذ اجراءات إضافية لتعزيز الحماية. وقد قام معدوا الدراسة باختبار عدد منها. فعلى سبيل المثال، قاموا بتصدير خاصية <a
href="http://en.wikipedia.org/wiki/Security-Enhanced_Linux">SELinux</a> على الأندرويد والتي تعنى بفرض سياسيات أمنية للتحكم بالدخول Access Control Security Ploicies وذلك بقصد تعزيز حماية عمليات النظام. كما قاموا بتفعيل جدار ناري يعتمد على خاصية <a
href="http://en.wikipedia.org/wiki/Netfilter">NetFilter</a> والتي تتعامل مع حزم البيانات في الشبكة network packets ودراسة كيفية قفل الجهاز وحمايته بكلمات مرور وآليات أخرى. بالإضافة الى كل ذلك، يقوم الباحثون بتطوير واختبار تطبيق يكشف عن وجود الدخلاء والمتطفلين IDS واسمه <a
href="http://andromaly.wordpress.com/">Andromaly</a>.</p><p>الجدول ١ يستعرض الحلول الأمنية القابلة للتطبيق والبرامج والتطبيقات الموجودة لتفعيلها.</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/07/table2-1mod.jpg" rel="lightbox[3492]"><img
class="aligncenter size-full wp-image-3496" src="http://ardroid.com/wp-content/uploads/2010/07/table2-1mod.jpg" alt="" width="486" height="452" /></a></p><p><a
href="http://ardroid.com/wp-content/uploads/2010/07/table2-2mod.jpg" rel="lightbox[3492]"><img
class="aligncenter size-full wp-image-3498" src="http://ardroid.com/wp-content/uploads/2010/07/table2-2mod.jpg" alt="" width="491" height="627" /></a></p><p><a
href="http://ardroid.com/wp-content/uploads/2010/07/table2-3mod.jpg" rel="lightbox[3492]"><img
class="aligncenter size-full wp-image-3500" src="http://ardroid.com/wp-content/uploads/2010/07/table2-3mod.jpg" alt="" width="487" height="285" /></a></p><p
style="text-align: center">جدول ١</p><p>الآليات التي ذكرها الباحثون في الجدول ١ يمكن تقسيمها وتصنيفها في خمس مجموعات\تكتلات (جدول ٢)، كل مجموعة تمثل خطرا أمنيا واحدا تندرج تحته الآليات المناسبة لحله أو التقليل من أثره وذلك على النحو التالي: (ويتضح مدى فعالية كل آلية واسهامها في تقليل الخطر في المجموعة التي هي جزء منها)</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/07/table3mod.jpg" rel="lightbox[3492]"><img
class="aligncenter size-full wp-image-3501" src="http://ardroid.com/wp-content/uploads/2010/07/table3mod.jpg" alt="" width="489" height="591" /></a></p><p
style="text-align: center">جدول ٢</p><h3>مجموعة التهديدات الأمنية الأولى: استخدام الأذونات الممنوحة لتطبيق تم تنصيبه بشكل ضار وخبيث</h3><p>هذه المجموعة من التهديدات تستهدف إلحاق الضرر بتوفر الخدمة Availability، السرية، وتكامل المعلومات عبر استخدام الأذونات الممنوحة بشكل خبيث. سيناريو الهجوم المقترن بهذه المجموعة محتمل الحدوث وأضراره كبيرة. وتتضمن آليات الحل ما يلي:</p><p><strong>١- نظام كشف ومنع المتطفلين IDS:</strong></p><p>هذا النظام يعتمد عليه في تحديد السلوك الطبيعي لنظام الأندرويد، التطبيقات، أو المستخدم ويقوم بالكشف عن أي نمط استخدام يشذ عنه، وهذا يكافيء وجود نمط سلوكي لبرنامج خبيث دخيل على النظام. ولكن البرمجيات الخبيثة عادة تتكيف بسرعة وتغير من أنماطها بشكل يجعلها تفلت من نظام ال IDS وهذا ما يقلل من فعالية النظام مع مرور الوقت.</p><p>بناء على الجهد الذي بذله معدوا الدراسة في تطوير Andromaly IDS، قاموا بتصنيفه بالمتوسط من ناحية الجهد المبذول لتطويره وبرمجتمه وتفعيله.</p><p><strong>٢- الجدار الناري:</strong></p><p>يمثل الجدار الناري حلا للهجمات المتعلقة بالشبكات التي يتصل بها الهاتف بحيث يعترض مثلا تسريب المعلومات الذي قد يقوم به برنامج خبيث. كما يمكن لجدار النار الحماية من بعض الهجمات غير المتعلقة بالشبكات.</p><p>صنف الباحثون صعوبة تطوير وتفعيل هذه الآلية بالمنخفض وذلك لأن العملية لا تتطلب سوى تفعيل خاصية NetFilter في نواة اللينكس بالإضافة الى عمل تطبيق بسيط يسهل عملية التحكم بهذه الخاصية.</p><p><strong>٣- شهادة الأمان للتطبيقات:</strong></p><p>هذه الآلية تعتبر مثالية جدا لحل مجموعة التهديدات الأولى. السبب يكمن في أن التطبيقات يتم اختبارها بشكل مكثف وتحديد العواقب الناتجة عن منحها الأذونات التي تطلبها قبل أن يتم توقيعها بالمفتاح والوثيقة الالكترونية التي تضمن خلو التطبيق من أي خطر. اذا، فشل أي تطبيق في الاختبار يعني عدم منحه لشهادة الأمان، وهذا الأمر مطلوب لحل التهديدات الأمنية. ولكن لا شيء يأتي بدون مقابل، فهذه الاختبارات كما هو واضح مكلفة.</p><p><strong>٤- أذونات منتقاة:</strong></p><p>هذه الآلية تسمح للمستخدم بالموافقة على أذونات محددة من المجموعة التي يطلبها التطبيق عند تنصيبه. تفعيلها يتطلب اجراء تعديل على برنامج تنصيب التطبيقات الموجود في النظام، وقد تم التأكيد مسبقا في هذه الدراسة على أهمية هذه الآلية التي تحمي المستخدم العادي وتقي المستخدم غير الملم بخطورة منح إذن معين لأحد التطبيقات.</p><p>تطوير وتطبيق هذه الآلية منخفض عموما و يحتاج الى تعديل طفيف وربما تغييرات سطحية في تصميم النظام.</p><h3>مجموعة التهديدات الأمنية الثانية: استغلال ثغرة في نواة اللينكس أو مكتبات النظام البرمجية</h3><p>تستهدف هذه المجموعة استغلال ثغرة في نواة اللينكس أو مكتبات النظام وبالتالي السيطرة والتحكم بتوفر الخدمة، السرية، وتكامل المعلومات (نتيجة مشابهة لما تحدثه المجموعة الأولى). هذا السيناريو تم اثبات احتمالية تحققه من قبل معدي الدراسة كما أثبتت تحليلاتهم وجود ثغرات أمنية إضافية قابلة للانكشاف عبر هذا الهجوم. ولكن تبقى احتمالية التعرض لهذا النوع من الهجوم منخفضة على أنها في حال تحققت فستخلف أثرا مدمرا.</p><p>الحل الأساسي هو خاصية SELinux التي تحد من وتتحكم في مقدرات الكيانات المختلفة في نظام التشغيل (مستخدمين، عمليات،&#8230;) والتي تطال مثلا ما يمكن للعمليات الأساسية وعمليات النظام عمله. إمكانية التحكم بهذا الشكل تضمن عدم إجبار النظام من قبل المهاجم للقيام بعمليات غير مصرح بها. ولكن تبقى هناك أوامر Commands اعتيادية لا يمكن ل SELinux منعها والخطر اذا من المدى الذي تعطيه هذه الأوامر العادية للمهاجم وكيفية استغلاله لها لتنفيذ هجومه.</p><p>تفعيل SELinux يتطلب جهدا منخفضا بالإضافة الى وضع سياسة\قاعدة Policy ملائمة.</p><h3>مجموعة التهديدات الأمنية الثالثة: كشف المحتويات الخاصة\الشخصية</h3><p>تهدف هذه التهديدات الى السيطرة والتحكم بتوفر، سرية، وتكامل المعلومات والمحتويات الخاصة. أي تطبيق يمكنه قراءة محتويات كرت الذاكرة SD Card والتنصت على الاتصالات اللاسلكية عن بعد. آليات الحل:</p><p><strong>١- الدخول Login:</strong></p><p>الآلية المتاحة حاليا سواء لإدخال كلمة مرور أو رسم نمط معين هي آلية فعالة. في حال سرق الجهاز وكانت هذه الآلية مفعلة، فلن يكون هناك خوف مقابل ما اذا كانت هذه الآلية غير مفعلة أو تمت سرقة الجهاز عندما كان غير مقفل. الحل هو أن يتمكن المستخدم من فرض آلية ادخال النمط (تلك التي تظهر عند تشغيلنا للجهاز) على تطبيقات معينة من شأنها الدخول على المعلومات الخاصة.</p><p><strong>٢- الجدار الناري:</strong></p><p>الجدار الناري من شأنه الحماية من تسرب المعلومات وذلك بمراقبته لحزم البيانات الصادرة والواردة عبر شبكات الاتصال التي تربط الجهاز بجهة أخرى. هذا يمكن الجدار الناري من ايقاف الاتصال في حال الاشتباه بتسريب معلومات خاصة. ما يميز الجدار الناري هو أنه يعمل على مستوى منخفض في هيكل النظام، بمعنى أنه يعمل على مستوى النواة وهذا ما يضمن له تحكما وكفاءة أكبر. وجه القصور في الجدار الناري هو عدم تمكنه من إيقاف الهجوم الذي يقوم بإرسال المعلومات السرية والخاصة عبر رسائل SMS/MMS.</p><p><strong>٣- تشفير البيانات:</strong></p><p>تعتبر هذه الآلية أفضل حل للحماية من كشف المعلومات الخاصة وذلك لأن المالك هو وحده من يعرف مفتاح فك تشفير البيانات. أي أن البيانات تبقى محمية طالما أن الكلمة السرية\مفتاح فك التشفير ليس بحوزة السارق وتخمينه يتطلب جهدا ووقتا كبيرين.</p><p>أعطيت لهذه الآلية درجة الصعوبة (الجهد المبذول)” منخفض” لأنها بسيطة التطبيق في الأصل كما أنها تتطلب تعاونا من مطوري التطبيقات ليقوموا بحفظ البيانات التي تستخدمها تطبيقاتهم مشفرة. وهذا بدوره يضع مسؤولية أخرى على عاتق غوغل لتحسين النظام في هذا الجانب بجعل التطبيقات الخاصة بال SMS ومعلومات جهات الاتصال Contacts مثلا تحفظ بياناتها مشفرة.</p><p><strong>٤- التحكم بالدخول بشكل تفاعلي ديناميكي: Context-Aware Access Control</strong></p><p>تتيح هذه الآلية التحكم بالدخول الى المعلومات الخاصة بشكل متغير يعتمد على حالة ووضع الجهاز. من ضمن عوامل السماح بالدخول الى المعلومات: المكان الحالي، الوقت، الشبكة الخلوية، واذا ما كان الجهاز متصلا عبر الواي فاي Wi-Fi وغيرها من العوامل. تخيل لو أن الجهاز سرق وحاول اللص الدخول الى المعلومات الخاصة، ولكن لحسن الحظ، كان المستخدم قد عرف الأماكن الجغرافية التي بالتواجد فيها يمكن دخول البيانات (كالمكتب والبيت)، ففي هذه الحالة لن يتمكن اللص من دخول المعلومات.</p><p>الجهد المبذول في هذه الآلية متوسط، فعملية انتقاء القواعد والسياسات Policies التي يتم بها التحكم بعملية الدخول ليست بسيطة.</p><p><strong>٥- الإدارة عن بعد:</strong></p><p>هذه الآلية تكتسب قوتها في حال تم دمجها مع بعض أو كل الآليات التي ذكرت في هذه المجموعة. الهدف من هذه الآلية هو ابقاء التحكم بالجهاز وضبط إعداداته قائما لتقليل الأخطار في حال السرقة مثلا. وهذه العملية مكلفة من ناحية أن التدخل البشري مطلوب بشكل دوري للتأكد من عمل الجهاز، كما أن التدخل في الوقت المناسب لحماية الجهاز عن بعد ضد هجوم معين (يصعب على الانسان القيام بهذا التدخل في الوقت المناسب) يعني وجود تطبيق يقوم بمراقبة الجهاز بشكل مستمر، وهذا مكلف أيضا. ولكن لا شيء يأتي بدون مقابل، لأنه عادة تعزيز الحماية والأمان يقتضي تكلفة أكبر.</p><h3>مجموعة التهديدات الأمنية الرابعة: تجفيف\استنزاف الموارد</h3><p>تستهدف هذه المجموعة من التهديدات اساءة استخدام موارد الجهاز بشكل يؤدي الى استنزافها. بالوضع الطبيعي، لا يتم تخصيص حصص معينة من قدرة المعالج وذاكرة الجهاز RAM للتطبيقات مما يعني أن وجود تطبيق ضار قد يمكنه من استنزاف هذه الموارد. هناك آليتان لحل هذه المجموعة من التهديدات:</p><p><strong>١- إدارة الموارد:</strong></p><p>توفر هذه الآلية امكانية تلافي الخطر المتأتي من تطبيق ضار يستنزف الموارد. تقوم إدارة الموارد بتخصيص حصص عادلة للتطبيقات بشكل يتناسب مع احتياجاتها وأهميتها (فمثلا تطبيق الهاتف أكثر أهمية من الألعاب). من شأن هذه الآلية الحماية من <a
href="http://ar.wikipedia.org/wiki/%D9%87%D8%AC%D9%85%D8%A7%D8%AA_%D8%A7%D9%84%D8%AD%D8%B1%D9%85%D8%A7%D9%86_%D9%85%D9%86_%D8%A7%D9%84%D8%AE%D8%AF%D9%85%D8%A7%D8%AA">هجمات الحرمان من الخدمات DoS</a> في حال كانت قادرة على التحكم بالمخصصات في موارد الجهاز: معالج، ذاكرة RAM، ذاكرة تخزينية، معدل تبادل المعلومات I/O&#8230;</p><p>يعيبها صعوبة التطبيق وذلك لأنها تتطلب إدخال تعديلات عديدة على النظام.</p><p><strong>٢- نظام كشف ومنع المتطفلين IDS:</strong></p><p>هذه الآلية تسهم في كشف عمليات استنزاف البطارية أو المعالج عبر ملاحظة الأنشطة غير الطبيعية في استعمال الموارد. في العادة، تتطلع البرمجيات الخبيثة الى عدم إثارة الانتباه، لذلك يتوجب تشغيل ال IDS بشكل مستمر لضبط أي زلة تقع بها هذه البرمجيات.</p><h3>مجموعة التهديدات الأمنية الخامسة: السيطرة والتحكم بالشبكات الداخلية والمحمية التي يتصل بها الجهاز</h3><p>يلجأ المخترق عادة الى استخدام جهاز الأندرويد الذي سيطر عليه للسيطرة على أجهزة أخرى، كمبيوترات، وحتى شبكات عبر تشغيل عمليات مسح\فحص للشبكات ومنافذها أو نشر ديدان عبر الايميل أو SMS/MMS وغيرها. آليات الحلول تتضمن:</p><p><strong>١- الشبكات الافتراضية الخاصة VPN:</strong></p><p>تعتمد هذه الشبكات على فكرة تشفير الاتصال لحمايته. البروتوكولات التالية: PPTP, L2TP,IPSec والمستخدمة في ال VPN تم تفعيلها على الأندرويد ابتداء من إصدارة 1.6. تفعيل المزيد من حلول ال VPN يتطلب جهدا منخفضا.</p><p><strong>٢- الإدارة عن بعد:</strong></p><p>القيام بفرض قواعد وسياسات Policies عند الاتصال بشبكات داخلية أو محمية يكون سهلا في حال تم التحكم به بشكل مركزي وذلك بأن يقوم عليه مسؤول شبكات Network Administrator. ولكن هذه الآلية ذات حدين، فكلما زادت كفاءة المسؤول، يرتفع مستوى تعزيز الأمان والحماية والعكس صحيح.</p><p><strong>٣- التحكم بالدخول بشكل تفاعلي ديناميكي:</strong></p><p>يتم تفعيل هذه الآلية بالشكل التالي: عندما يتم رصد اتصال بشبكة معينة، تقوم هذه الآلية بفرض عمليات من شأنها ضمان أمن الجهاز. مثلا تقوم بفرض عملية تشفير الاتصال، المصادقة، وغيرها.</p><h1>الخاتمة</h1><p>هذه الدراسة التحليلية وضحت بأن الحماية الموجودة على الأندرويد كانت قد صممت بشكل متأن وممتاز لتضمن حماية النظام من العديد من التهديدات والأخطار. وهذا البحث قدم عدد من الآليات والحلول لتعزيز ورفع مستوى الحماية والأمان وقام بتقييمها وتصنيفها.</p><p>للإطلاع على معلومات الباحثين الستة الذين أعدوا هذه الدراسة والمصادر التي استعانوا بها: <a
href="http://www.computer.org/portal/web/csdl/doi/10.1109/MSP.2010.2">هنا</a></p><p>== نهاية الدراسة ==</p><p>لتحميل الدراسة كاملة: <a
href="http://ardroid.com/wp-content/uploads/2010/07/دراسة-أمنية-لنظام-الأندرويد.pdf">اضغط هنا</a>.</p><p>تحية <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/08/01/comprehensive-android-security-assessment3/feed/</wfw:commentRss> <slash:comments>14</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/07/android_security.jpg" /> </item> <item><title>دراسة أمنية شاملة لنظام الأندرويد (الجزء ٢/٣)</title><link>http://ardroid.com/2010/07/29/comprehensive-android-security-assessment2/</link> <comments>http://ardroid.com/2010/07/29/comprehensive-android-security-assessment2/#comments</comments> <pubDate>Thu, 29 Jul 2010 07:36:52 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دراسات وتحليلات]]></category> <category><![CDATA[adb]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[assessment]]></category> <category><![CDATA[attacks]]></category> <category><![CDATA[core components]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[root]]></category> <category><![CDATA[security]]></category> <category><![CDATA[security mechanisms]]></category> <category><![CDATA[security solutions]]></category> <category><![CDATA[services]]></category> <category><![CDATA[sharedUserId]]></category> <category><![CDATA[sql]]></category> <category><![CDATA[webkit]]></category> <category><![CDATA[xss]]></category> <category><![CDATA[أمن المعلومات]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[ثغرات]]></category> <category><![CDATA[حلول أمنية]]></category> <category><![CDATA[حماية]]></category> <category><![CDATA[دراسة]]></category> <category><![CDATA[لينكس]]></category> <category><![CDATA[نظام]]></category> <category><![CDATA[هيكلة]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3421</guid> <description><![CDATA[نقدم لكم الجزء الثاني من الدراسة التي كنا قد نشرنا جزأها الأول وفيه تحدث معدوا الدراسة عن الآليات الأمنية لنظام الأندرويد. وكما ذكرنا فإن ترجمة الدراسة تقع في ١٥ صفحة، وسيتم نشرها على ٣ أجزاء وفي الجزء الأخير سنقوم بإرفاق الدراسة كاملة على شكل ملف PDF. الباب الثاني التقييم الأمني لإطار عمل الأندرويد قام معدو&#8230; <a
href="http://ardroid.com/2010/07/29/comprehensive-android-security-assessment2/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="487" height="276" src="http://ardroid.com/wp-content/uploads/2010/07/android_crook.png" class="attachment-large" alt="http://www.androidauthority.com/wp-content/uploads/2008/10/android_crook.png" title="android_crook" /><p>نقدم لكم الجزء الثاني من الدراسة التي كنا قد نشرنا <a
href="http://ardroid.com/2010/07/26/comprehensive-android-security-assessment1/">جزأها الأول</a> وفيه تحدث معدوا الدراسة عن الآليات الأمنية لنظام الأندرويد. وكما ذكرنا فإن <strong>ترجمة الدراسة تقع في ١٥ صفحة، وسيتم نشرها على ٣ أجزاء وفي الجزء الأخير سنقوم بإرفاق الدراسة كاملة على شكل ملف PDF.</strong></p><h1>الباب الثاني</h1><h2><span
style="color: #404040"><strong>التقييم الأمني لإطار عمل الأندرويد</strong></span></h2><p>قام معدو البحث بعمل تقييم شامل لعدد من الجوانب الأمنية في أندرويد باستخدام جهاز <a
href="http://en.wikipedia.org/wiki/HTC_Dream">HTC G1</a>. طرق التقييم تشمل ما يلي:</p><p>- مراجعة الكود الخاص بعناصر متعددة في الأندرويد.</p><p>- تحليل لآلية منح الأذونات في التطبيقات وعملية تنصيبها.</p><p>- تقييم جدوى الأمان والحماية ضد البرمجيات الخبيثة المتوفرة حاليا في لينكس وجافا.</p><p>جهاز الأندرويد في حالته العادية محمي بشكل جيد علما أن المهاجم\المخترق لا يمكنه استبدال عناصر النظام الأساسية أو نواة اللينكس دون التلاعب والتدخل المباشر بعتاد الجهاز، وهذا صعب. فإذا السبيل الوحيدة للتلاعب بعناصر نظام التشغيل (سواء النواة أو العناصر الأساسية core components) هو بتحديد ثغرة في أحد أجزاء النواة أو العناصر الأساسية ومكتباتها البرمجية مما يتيح للمخترق الحصول على صلاحيات عالية قد تصل لصلاحيات <a
href="http://en.wikipedia.org/wiki/Superuser">مستخدم الجذر root</a>. وبمجرد تمكن المخترق من استغلال هذه الثغرة فإن بإمكانه تشغيل كود ضار بأعلى درجات الأذونات\الصلاحيات وقد يمكنه هذا الهجوم من التحكم بكل موارد الجهاز، وذلك لأن العديد من عمليات النظام <a
href="http://en.wikipedia.org/wiki/Process_(computing)">system processes</a> تعمل تحت صلاحيات مرتفعة (صلاحيات الجذر عادة).</p><p><a
href="http://www.pocket-lint.com/images/nwP2/android-root-hacking-gets-easier-0.jpg" rel="lightbox[3421]"><img
class="aligncenter size-full wp-image-3430" src="http://ardroid.com/wp-content/uploads/2010/07/android-root-hacking-gets-easier-0.jpg" alt="http://www.pocket-lint.com/images/nwP2/android-root-hacking-gets-easier-0.jpg" width="180" height="180" /></a></p><p>يبقى الأندرويد نظاما مفتوح المصدر، مما يمكن المخترق من توجيه ضربات أقوى لعلمه بكيفية عمل النظام برمجيا. ولكن بالمقابل، هذا يكسبه مزايا أمنية عديدة من ناحية تمكين أي شخص عارف بأمور الحماية والأمان تحديد الثغرات المحتملة وتعديلها برمجيا وتعزيز حماية النظام. وهذا يدفعنا لأن نؤمن بأن عدد الثغرات والأخطاء البرمجية آخد في الاضمحلال الى حد التلاشي نوعا ما مع مرور الزمن. ولكن يبقى احتمال التعرض للهجوم بسبب ثغرات من هذا النوع قائما مهما كان.</p><p>مهاجمة جهاز الأندرويد &#8220;عن بعد&#8221; تتطلب عمل خدمة service معينة فيها ثغرات أمنية على الانترنت. وهذا السيناريو غير متوقع الحدوث لأنه وبشكل افتراضي، لا تقوم أي خدمة عاملة في النظام بالاستماع لأي اتصال قادم من الانترنت listening for incoming connections. لذا، يمكن اعتبار أن الجهاز معرض فقط لاختراقات على المستوى المحلي host-based عبر الثغرات المحتملة في النواة والخدمات المحلية local services والبرامج التشغيلية وغيرها.</p><p>المشاكل الأخرى تكمن في أن آلية منح الأذونات تظل غير محمية بحيث أن سيناريو، على سبيل المثال، منح إذن معين لتطبيق ضار عبر مستخدم غير متنبه للخطورة المتوقعة تبقى قائمة. كما أن وجود خاصية رفع التطبيقات على الجهاز بواسطة أمر <a
href="http://developer.android.com/guide/developing/tools/adb.html">adb</a> (وهو أمر نستخدمه في الوحدة الطرفية terminal في الكمبيوتر لرفع التطبيقات الى جهاز الأندرويد) وتنصيبها دون أخذ التصريحات والأذونات التي سيستخدمها التطبيق من المستخدم بشكل مباشر تشكل خطرا (وهذا خطر لمسته بنفسي حيث أنك بالفعل تستطيع رفع أي تطبيق -وقد يكون ضارا- الى جهازك الأندرويد عند وصله بالكمبيوتر بسلك اليو اس بي عبر هذا الأمر وسيتم تنصيب التطبيق دون حتى إظهار قائمة الأذونات المطلوبة والتي تظهر عادة عند تحميل وتنصيب تطبيق من سوق الأندرويد). أضف الى كل ذلك (١) أن الأذونات التي يطلبها التطبيق لا يمكن الموافقة على عدد منها ورفض الباقي، هي أحد أمرين، إما الموافقة على الكل، أو رفض الكل، وهنا تكمن الخطورة في منح الأذونات دون التنبه لأخطار بعضها (٢) التطبيقات التي تشترك في نفس ال user ID أي أن خاصية sharedUserID مفعلة تجعل التطبيقات تتبادل التصاريح والأذونات الممنوحة لإحداها فيما بينها بشكل تلقائي دون إعلام المستخدم (راجع <a
href="http://ardroid.com/2010/07/26/comprehensive-android-security-assessment1/">الجزء الأول من الدراسة</a>).</p><p
style="text-align: center"><a
href="http://www.androidauthority.com/wp-content/uploads/2008/10/android_crook.png" rel="lightbox[3421]"><img
class="aligncenter size-full wp-image-3431" src="http://ardroid.com/wp-content/uploads/2010/07/android_crook.png" alt="http://www.androidauthority.com/wp-content/uploads/2008/10/android_crook.png" width="341" height="193" /></a></p><p>المشاكل الأخرى التي وجدها الباحثون تتعلق بمتصفح الويب. محرك الويب <a
href="http://en.wikipedia.org/wiki/WebKit">WebKit</a> المفتوح المصدر والذي يستعمله الأندرويد له تاريخ طويل مع الثغرات التي يتم فيها حقن أكواد ضارة. بعض الهجمات الحالية تتضمن هجوم ال <a
href="http://en.wikipedia.org/wiki/Buffer_overflow">buffer overflow</a> الذي يستغل المكتبات البرمجية الأصيلة القديمة (والتي تكون بحاجة الى تحديث) إضافة الى الهجوم المعروف ب <a
href="http://en.wikipedia.org/wiki/Cross-site_scripting">cross-site scripting XSS</a> وهذه الاختراقات تمكن المهاجم من تشغيل أكواد ضارة على الجهاز بالصلاحية الممنوحة لتطبيق متصفح المواقع.</p><p>بالنسبة لحقن أكواد وتطبيقات ضارة عبر البلوتوث، فهذا صعب الحدوث لوجود الآليات التالية:</p><p>- يمكن وضع الجهاز في طور “غير مرئي not discoverable” عند تشغيل البلوتوث.</p><p>- اذا كان الجهاز في طور “مرئي discoverable” فهذا الوضع يستمر لدقيقتين فقط.</p><p>- المستخدم يقوم بالموافقة على إنشاء واستقبال اتصال (لا توجد اتصالات دون علمه).</p><p>- على المستخدم تنصيب التطبيق أو تشغيل الملف المتلقى يدويا.</p><p>بخصوص ما يتعلق بالهجوم المعروف الخاص بحقن جمل ال SQL، أي ال <a
href="http://en.wikipedia.org/wiki/SQL_injection">SQL Injection attack</a>، وجد معدوا البحث أن الجهاز محمي منه بشكل جيد. ولكن بنفس الوقت، تكون بعض المعلومات مكشوفة بالكامل للمهاجم (كمحتويات كرت الذاكرة SD card). ولكن تبقى آلية فرض رقم مستخدم user ID لكل تطبيق بشكل منفصل فعالة في الحماية من التعديل والتلاعب بقواعد بيانات التطبيقات والنظام (وهذا ما قد يحاول هجوم ال SQL عمله).</p><p>يوضح الشكل ٢ نتائج تحليل المخاطر النوعية التي قد يتعرض لها الجهاز بالإستناد الى تقييم الأثر الناتج (المحور الصادي العمودي) واحتمالية حصول استغلال لهذه الثغرات (المحور السيني الأفقي) التي من شأنها الحاق الضرر، أو تعطيل، أو إساءة استخدام (١)الخصوصية أو (٢)السرية أو (٣)تكامل المعلومات أو (٤)طبيعة عمل ما يلي:</p><p>- المحتوى الشخصي\الخاص المخزن (صور، ملفات، فيديو، رسائل ايميل،&#8230;)</p><p>- التطبيقات والخدمات (الهاتف، الرسائل القصيرة، الانترنت،&#8230;)</p><p>- موارد الجهاز (طاقة البطارية، هوائي الاتصال وعمله، قدرة المعالج،..)</p><p>- العتاد (الجهاز نفسه، الذاكرة الخارجية\الداخلية، البطارية، الكاميرا،&#8230;)</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/07/graph1ll.jpg" rel="lightbox[3421]"><img
class="aligncenter size-full wp-image-3428" src="http://ardroid.com/wp-content/uploads/2010/07/graph1ll.jpg" alt="" width="540" height="400" /></a></p><p
style="text-align: center">الشكل ٢ (مستوحى من الدراسة الأصلية)</p><p>١- إساءة استخدام وظيفة مكلفة (ارسال رسائل قصيرة\وسائط متعددة MMS، اجراء مكالمات هاتفية، تحويل المكالمات الواردة الى رقم ذو تكلفة عالية) باستغلال ثغرة متواجدة في عنصر أساسي في النظام، وهذه الثغرة يمكن الولوج اليها عن بعد عبر الانترنت. <span
style="color: #edd211">ΞΞ</span></p><p>٢- تفعيل نشاط خبيث ضد الشبكة وأجهزتها (ارسال رسائل سبام، الحاق العدوى بالأجهزة الأخرى “بنشر فايروس”، التجسس على حزم المعلومات المتبادلة على الشبكة) باستغلال ثغرة متواجدة في عنصر أساسي في النظام، وهذه الثغرة يمكن الولوج اليها عن بعد عبر الانترنت. <span
style="color: #edd211">ΞΞ</span></p><p>٣- إساءة استخدام وظيفة مكلفة (ارسال رسائل قصيرة\وسائط متعددة MMS، اجراء مكالمات هاتفية، تحويل المكالمات الواردة الى رقم ذو تكلفة عالية) عبر تشغيل تطبيق مضر يستغل ثغرة متواجدة في عنصر أساسي في النظام. <span
style="color: #c03620">ΞΞ</span></p><p>٤- تفعيل نشاط خبيث ضد الشبكة وأجهزتها (ارسال رسائل سبام، الحاق العدوى بالأجهزة الأخرى “بنشر فايروس”، التجسس على حزم المعلومات المتبادلة على الشبكة) عبر تشغيل تطبيق مضر يستغل ثغرة متواجدة في عنصر أساسي في النظام. <span
style="color: #c03620">ΞΞ</span></p><p>٥- إساءة استخدام وظيفة مكلفة (إرسال رسائل قصيرة\وسائط متعددة MMS، اجراء مكالمات هاتفية، تحويل المكالمات الواردة الى رقم ذو تكلفة عالية) عبر استغلال الأذونات الممنوحة أثناء تنصيب تطبيق معين بشكل ضار. <span
style="color: #c03620">ΞΞ</span></p><p>٦- تفعيل نشاط خبيث ضد الشبكة وأجهزتها (ارسال رسائل سبام، الحاق العدوى بالأجهزة الأخرى “بنشر فايروس”، التجسس على حزم المعلومات المتبادلة على الشبكة) عبر استغلال الأذونات الممنوحة أثناء تنصيب تطبيق معين بشكل ضار. <span
style="color: #c03620">ΞΞ</span></p><p>٧- تعطيل الجهاز أو التطبيقات عبر استغلال ثغرة متواجدة في عنصر أساسي في النظام، وهذه الثغرة يمكن الولوج اليها عن بعد عبر الانترنت. <span
style="color: #008000">ΞΞ</span></p><p>٨- تعطيل الجهاز أو التطبيقات عبر تشغيل تطبيق مضر يستغل ثغرة متواجدة في عنصر أساسي في النظام. <span
style="color: #edd211">ΞΞ</span></p><p>٩- تعطيل الجهاز أو التطبيقات عبر استغلال الأذونات الممنوحة أثناء تنصيب تطبيق معين بشكل ضار. <span
style="color: #c03620">ΞΞ</span></p><p>١٠- تعطيل أو تعديل معلومات ومحتويات خاصة، حجب أو تعديل أو استراق السمع على اتصالات الجهاز مع الشبكة (ارسال رسائل قصيرة، اجراء مكالمات، الانترنت،&#8230;) عبر استغلال ثغرة متواجدة في عنصر أساسي في النظام، وهذه الثغرة يمكن الولوج اليها عن بعد عبر الانترنت. <span
style="color: #008000">ΞΞ</span></p><p>١١- تعطيل أو تعديل معلومات ومحتويات خاصة، حجب أو تعديل أو استراق السمع على اتصالات الجهاز مع الشبكة (ارسال رسائل قصيرة، اجراء مكالمات، الانترنت،&#8230;) عبر تشغيل تطبيق مضر يستغل ثغرة متواجدة في عنصر أساسي في النظام. <span
style="color: #008000">ΞΞ</span></p><p>١٢- تعطيل أو تعديل معلومات ومحتويات خاصة، حجب أو تعديل أو استراق السمع على اتصالات الجهاز مع الشبكة (ارسال رسائل قصيرة، اجراء مكالمات، الانترنت،&#8230;) عبر استغلال الأذونات الممنوحة أثناء تنصيب تطبيق معين بشكل ضار. <span
style="color: #008000">ΞΞ</span></p><p>١٣- التحصل على أو تخريب أو تعديل ملفات ومحتويات خاصة عند تصفح موقع ضار\مشبوه. <span
style="color: #edd211">ΞΞ</span></p><p>١٤- حجب أو تعديل أو استراق السمع (التنصت) على اتصالات الجهاز مع الشبكة في حال اتصال الجهاز بشبكة مشبوهة. <span
style="color: #edd211">ΞΞ</span></p><p>١٥- استلام رسائل مزعجة (سبام)، رسائل قصيرة ووسائط متعددة SMS/MMS، أو ايميلات. <span
style="color: #008000">ΞΞ</span></p><p>١٦- ظهور إعلانات في تطبيق متصفح المواقع browser application عند تصفح الانترنت. <span
style="color: #edd211">ΞΞ</span></p><p>١٧- فقد وضياع أجزاء من العتاد.</p><p>١٨- إحداث أعطاب في أجزاء العتاد الخاص بالجهاز.</p><p>== نهاية الجزء الثاني ==</p><p>الجزء الثالث والأخير سيستعرض حلولا أمنية مهمة لتحسين أمن وحماية نظام الأندرويد. انتظرونا<span
style="font-family: Arial, Verdana, Helvetica, sans-serif"><span
style="line-height: 19px"> <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></span></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/07/29/comprehensive-android-security-assessment2/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/07/android_security.jpg" /> </item> <item><title>دراسة أمنية شاملة لنظام الأندرويد (الجزء ١/٣)</title><link>http://ardroid.com/2010/07/26/comprehensive-android-security-assessment1/</link> <comments>http://ardroid.com/2010/07/26/comprehensive-android-security-assessment1/#comments</comments> <pubDate>Mon, 26 Jul 2010 14:33:56 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دراسات وتحليلات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[assessment]]></category> <category><![CDATA[attacks]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[security]]></category> <category><![CDATA[security mechanisms]]></category> <category><![CDATA[security solutions]]></category> <category><![CDATA[آليات أمنية]]></category> <category><![CDATA[أمن المعلومات]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[ثغرات]]></category> <category><![CDATA[حلول أمنية]]></category> <category><![CDATA[حماية]]></category> <category><![CDATA[دراسة]]></category> <category><![CDATA[لينكس]]></category> <category><![CDATA[نظام]]></category> <category><![CDATA[هيكلة]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3314</guid> <description><![CDATA[هذا البحث يطرح تقييما من الناحية الأمنية لإطار عمل نظام الأندرويد ككل. البحث من إعداد ٦ باحثين من جامعة بن-غوريون العبرية وتم نشره في مجلة IEEE Security &#38; Privacy العريقة في عددها الخاص بشهري مارس/أبريل ٢٠١٠ تحت عنوان: Google Android: A Comprehensive Security Assessment في هذا البحث، قام الباحثون بتحديد عدد من التهديدات والثغرات عالية&#8230; <a
href="http://ardroid.com/2010/07/26/comprehensive-android-security-assessment1/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="196" height="198" src="http://ardroid.com/wp-content/uploads/2010/07/android_security.jpg" class="attachment-large" alt="http://www.android-devs.com/wp-content/uploads/2010/01/android_security.jpg" title="android_security" /><p
style="text-align: right">هذا البحث يطرح تقييما من الناحية الأمنية لإطار عمل نظام الأندرويد ككل. البحث من إعداد ٦ باحثين من جامعة بن-غوريون العبرية وتم نشره في مجلة <a
href="http://www.computer.org/security">IEEE Security &amp; Privacy</a> العريقة في عددها الخاص بشهري مارس/أبريل ٢٠١٠ تحت عنوان:</p><h4 style="text-align: center"><a
href="http://www.computer.org/portal/web/csdl/doi/10.1109/MSP.2010.2">Google Android: A Comprehensive Security Assessment</a></h4><p
style="text-align: right">في هذا البحث، قام الباحثون بتحديد عدد من التهديدات والثغرات عالية الخطورة، وقدموا عددا من الاقتراحات الأمنية التي من شأنها تخفيف هذه المخاطر. قمنا في أردرويد بترجمة البحث كاملا لإيماننا بأهميته في تعريف قرائنا الأعزاء بالجوانب الأمنية المرتبطة بنظام الأندرويد. وقد حاولنا إضافة بعض الجمل التوضيحية التي من شأنها تقريب المعنى الذي قصده الباحثون وتذليل سوء\صعوبة الفهم الذي قد ينشأ بسبب عملية الترجمة وصعوبة إيجاد المصطلحات العربية التي تؤدي المعنى (وهذا قصور من المترجم وليس ذما بلغتنا العربية الحبيبة <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).  <strong>ترجمة الدراسة تقع في ١٥ صفحة، وسيتم نشرها على ٣ أجزاء وفي الجزء الأخير سنقوم بإرفاق الدراسة كاملة على شكل ملف PDF.</strong></p><h1><strong>مقدمة</strong></h1><p
style="text-align: right"><strong> </strong>نظام الأندرويد معرض لهجمات واختراقات أمنية اعتيادية حاله حال أي هاتف ذكي. مثل هذه الهجمات قد يعطل الجهاز جزئيا أو كليا، أو يقوم بإرسال رسائل قصيرة ووسائط متعددة غير مرغوب بها (مما يضيف تكاليف الإرسال الى الفاتورة)، او يكشف معلومات خاصة. وتتضمن مجالات ومنافذ الهجمات: الشبكات الخلوية، بلوتوث، الانترنت (Wi-Fi و 3G)، منفذ ال USB، وغيرها.</p><p
style="text-align: right">تطور البرمجيات الضارة والفيروسات ومقاومتها لبرامج الحماية سريع جدا بحكم أن مبرمجيها اكتسبوا خبرة عالية من التطور الحاصل في <a
href="http://ar.wikipedia.org/wiki/%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A7%D8%AA_%D8%AE%D8%A8%D9%8A%D8%AB%D8%A9">البرمجيات الخبيثة Malware</a> المتواجدة في أجهزة الكمبيوتر الشخصية. يقول أحد باحثي أمن المعلومات <a
href="http://ru.linkedin.com/in/gostev">أليكساندر جوستيف</a>: سنتان هو المقدار الكافي من الزمن لتتطور فيه فيروسات الأجهزة الذكية المحمولة الى مستوى مقارب لدرجة التطور التي وصلتها فيروسات الأجهزة الشخصية خلال ٢٠ سنة. وهذا ما يعني أن التحديات المتعلقة بصد هذه الفيروسات شبيه بتلك الموجودة في الكمبيوترات الشخصية. ولعل أبرز البرمجيات الخبيثة للهواتف الذكية هي من نوع Lasco/Cabir و Commwarrior/Mabir  (ديدان ضارة worms ) إضافة الى FlexiSpy و RedBrowser و Skulls (أحصنة طروادة) و WinCE.Duts  و CardTrap (فيروسات) ومؤخرا دودة iPhone ikee وأداة الاختراق iPhone/Privacy.A التي تستغل العيوب والثغرات التي تنشأ في أنظمة الآيفون المفتوحة Jail-Broken.</p><p
style="text-align: center"><a
href="http://strazzere.com/blog/wp-content/uploads/2008/11/g1-virus-300x251.jpg" rel="lightbox[3314]"><img
src="http://ardroid.com/wp-content/uploads/2010/07/g1-virus-300x251.jpg" alt="http://strazzere.com/blog/wp-content/uploads/2008/11/g1-virus-300x251.jpg" width="240" height="201" /></a></p><p
style="text-align: right">حتى الآن لم تحدث هجمات كارثية تستهدف عددا كبيرا من المستخدمين وذلك لمحدودية عدد الضحايا المكشوفين للهجمات. ولكن ومع الازدياد المتصاعد لعدد مبيعات الأجهزة الذكية (في ٢٠٠٨، مثلت الأجهزة الذكية ١١٪ من نسبة الأجهزة الخلوية المباعة ككل، وهذه النسبة تعدت ال ١٧٪ في  ٢٠٠٩ &#8220;<a
href="http://www.forrester.com/rb/Research/predictions_2010_enterprise_mobility_accelerates_again/q/id/53400/t/2?action=5">المصدر بحسب الدراسة</a>&#8220;) يصبح من المتوقع جدا أن يتم توجيه أنشطة الاختراق بشكل موسع نحو هذه الأجهزة.</p><p
style="text-align: right">المخاطر الأمنية التي تواجه الأندرويد لا يمكن الاستهانة بها، وذلك كونه مفتوح المصدر وهذا ما يتيح للمخترقين دراسة النظام عن كثب وتحديد مواطن الضعف. هذا البحث يشرح ويقيم الآليات الأمنية المتبعة في إطار عمل نظام الأندرويد وتحديد مدى ملاءمتها للتحديات والمخاطر المتزايدة التي تهدد الأجهزة الذكية.</p><h1><strong>الباب الأول</strong></h1><h2><strong>الآليات الأمنية لنظام الأندرويد Android Security Mechanisms</strong></h2><p
style="text-align: right"><strong> </strong>سنبدأ بتوضيح بعض المعلومات المهمة عن هيكلة نظام الأندرويد وبعدها سنتطرق للآليات الأمنية المتبعة.</p><p
style="text-align: right">الأندرويد هو بيئة تشغيلية لتطبيقات الأجهزة النقالة. ويتضمن: نظام تشغيل + إطار عمل للتطبيقات + تطبيقات أساسية Core Applications. المكدس البرمجي للأندرويد The Android Software Stack مبني على نواة لينكس والتي تقوم بالتالي:</p><p
style="text-align: right">- التحكم ببرامج تشغيل الأجهزة والملحقات Drivers.</p><p
style="text-align: right">- إدارة الذاكرة Memory Management.</p><p
style="text-align: right">- إدارة العمليات Process Management.</p><p
style="text-align: right">- إدارة الشبكات وغيرها (انظر الشكل ١).</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/07/646px-Diagram_android.png" rel="lightbox[3314]"><img
class="size-full wp-image-3330  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/07/646px-Diagram_android.png" alt="http://en.wikipedia.org/wiki/File:Diagram_android.png" width="646" height="600" /></a></p><p
style="text-align: center">￼الشكل ١</p><p
style="text-align: right">المستوى الذي يعلو نواة اللينكس يحتوي على مكتبات الأندرويد البرمجية الأصيلة Android Native Library، والتي يتم استخدامها من قبل العناصر الموجودة في المستويات الأعلى. هذه المكتبات مكتوبة بلغة ال C++/C (تمثل اللون الأخضر في الشكل ١) وهذا يعني تواجد واجهات مكتوبة بالجافا Java Interfaces.</p><p
style="text-align: right">يأتي فوق هذا المستوى، المستوى التشغيلي Android Runtime والذي يحوي آلة افتراضية من نوع دالفيك Dalvik Virtual Machine والمكتبات الأساسية Core Libraries. الآلة الافتراضية Dalvik تشغل ملفات بامتداد .dex وهي مصممة لتكون مدمجة وأكثر فعالية من ناحية الذاكرة المستخدمة مقارنة بملفات مجموعات الجافا العادية Java Class Files. المكتبات الأساسية مكتوبة بالجافا وتوفر مجموعات جزئية غنية من حزمة Java 5 SE بالإضافة الى بعض المكتبات المخصصة للأندرويد.</p><p
style="text-align: right">المستوى الذي يعلو المستويات السابقة هو مستوى إطار عمل التطبيقات Application Framework Layer وهو مكتوب بالجافا بالكامل ويحتوي على الأدوات والخدمات المتاحة من غوغل بالإضافة لامتدادات وخدمات أخرى (انظر الشكل ١).</p><p
style="text-align: right">المستوى العلوي النهائي هو مستوى التطبيقات Application Layer والذي يوفر التطبيقات على شاكلة الهاتف، المتصفح، تطبيق الإيميل،&#8230;</p><p
style="text-align: right">كل تطبيق من تطبيقات الأندرويد يتم تشكيله على هيئة حزمة بامتداد .apk  قابلة للتنصيب. هذه الحزمة تشابه الى حد ما حزم الجافا المعروفة jar من ناحية احتوائها على جميع المصادر من كود برمجي الى ملفات الصور والصوت وغيرها الخاصة بالتطبيق. التطبيقات مكتوبة بالجافا باستخدام الحزمة التطويرية البرمجية SDK الخاصة بالأندرويد.</p><p
style="text-align: right">بعد هذه المقدمة التوضيحية، نأتي الى سرد الآليات الأمنية المتبعة في نظام الأندرويد. سيقوم هذا البحث بتقسيم الآليات الى ٣ أقسام: آليات مرتبطة بنظام اللينكس، آليات خصائص البيئة التشغيلية، آليات مختصة بالأندرويد.</p><h2><span
style="color: #404040"><strong>أولا: آليات مرتبطة بنظام اللينكس:</strong></span></h2><p
style="text-align: right"><strong> </strong>هناك آليتان أمنيتان أساسيتان في هذا القسم (على مستوى نواة اللينكس في نظام الأندرويد): <strong>١- آلية المستخدمين تحت معيار POSIX ٢- آلية دخول الملفات</strong>. العنصر الأساسي لهاتين الآليتان هو المستخدم User (ويسمى كيانا). وكل كائن/غرض Object (كعملية معينة أو ملف) مملوك من قبل كيان\مستخدم (يتم تمثيل المستخدم برقم خاص به، ID). المستخدمين يمكن تجميعهم وضمهم بمجموعات Groups.</p><p
style="text-align: center"><a
href="http://www.muylinux.com/wp-content/uploads/2010/03/android-linux.jpg" rel="lightbox[3314]"><img
class="aligncenter size-full wp-image-3341" src="http://ardroid.com/wp-content/uploads/2010/07/android-linux.jpg" alt="" width="335" height="210" /></a></p><p
style="text-align: right"><strong>- المستخدمين تحت معيار POSIX:</strong></p><p
style="text-align: right"><strong> </strong>كل حزمة أندرويد .apk منصبة على الجهاز لديها رقم مستخدم فريد Unique POSIX User ID. وهذا يعني أن أي حزمتين\تطبيقين مختلفين لا يمكن تشغيلهم في نفس العملية (لا تنس ما ذكرناه في المقطع السابق بأن كل عملية مملوكة من قبل مستخدم واحد). هذا يخلق نوعا ما صندوقا Sand Box حول كل تطبيق يمنعه من التداخل مع تطبيق آخر. ولكن مع ذلك، توجد إمكانية تشغيل تطبيقين في عملية واحدة Single Process بشرط أن يكون كلا التطبيقين يحملان نفس رقم المستخدم User ID وهذا لا يتم الا عبر:</p><p
style="text-align: right">(١) تفعيل خاصية sharedUserID في ملف المانيفست AndroidManifest.xml الذي تعرضنا له في السلسلة البرمجية التي قمنا بنشرها في أردرويد.</p><p
style="text-align: right">(٢) توقيع التطبيقين الكترونيا بنفس المفتاح الالكتروني الخاص بالمبرمج (لم نتعرض لهذه النقطة في السلسلة البرمجية التي نشرناها في أردرويد ولكن لتصدير التطبيق على صيغة .apk يتوجب على المبرمج توقيع التطبيق بمفتاح الكتروني Digital Key خاص به -وبالمناسبة يقوم الاكليبس بهذه المهمة ضمنيا قبل رفع التطبيق على المحاكي، ولكن اذا أراد المبرمج نشر تطبيقه في سوق الأندرويد، فيتوجب عليه القيام بهذه المهمة يدويا وباستخدام مفتاح خاص به مختلف عن ذلك الذي يستعمله الاكليبس-).</p><p
style="text-align: right">وبالإضافة الى كون تفعيل هذه الخاصية يسمح بعمل التطبيقين (أو أكثر) تحت نفس العملية Process، فإنه يمكن للتطبيقين أن يستعملا معلومات بعضهما البعض، أي باستطاعة التطبيق الأول الدخول مباشرة الى معلومات التطبيق الثاني (قاعدة بياناته مثلا) والعكس صحيح.</p><p
style="text-align: right"><strong>- دخول الملفات:</strong></p><p
style="text-align: right"><strong> </strong>ملفات النظام والتطبيقات في أندرويد تتبع آليات تصاريح\أذونات لينكس Linux Permissions Mechanisms. كل ملف مقترن برقم مستخدم يملكه Owner User Id ورقم المجموعة التي يتبع لها هذا المستخدم، وتصاريح خاصة بالقراءة، الكتابة، والتشغيل Read Write eXecute rwx. وتقوم نواة لينكس بفرض هذه التصاريح بالشكل التالي: التصاريح الخاصة بمالك الملف (٣ قيم)، التصاريح الخاصة بالمستخدمين الذين ينتمون لمجموعة المالك (٣ قيم)، التصاريح الخاصة بباقي المستخدمين (٣ قيم).</p><p
style="text-align: center"><a
href="http://www.lifeaftercoffee.com/wp-content/uploads/2007/01/perm_breakdown.JPG" rel="lightbox[3314]"><img
class="size-full wp-image-3351  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/07/perm_breakdown.jpg" alt="http://www.lifeaftercoffee.com/wp-content/uploads/2007/01/perm_breakdown.JPG" width="194" height="84" /></a></p><p
style="text-align: right">مثال: لدينا ملف اسمه whatever.txt، والصلاحيات المعطاة لمالك الملف هي القراءة والكتابة والتنفيذ rwx، وللمستخدمين الذين ينتمون لمجموعة المالك القراءة والتنفيذ فقط rx، ولباقي المستخدمين القراءة والتنفيذ فقط rx، يصبح لدينا التصريح المقترن بهذا الملف:</p><p
style="text-align: right">rwxr-xr-x.</p><p
style="text-align: right">مع هذه التصاريح، يتم فرض الجانب الأمني بالشكل المطلوب على المستخدمين عند تعاملهم مع الملفات (التطبيقات وملفات النظام). وبالإضافة لذلك، يتعامل اللينكس مع برامج التشغيل، الصوت، الحساسات Sensors، لوحة المفاتيح، وغيرها كما يتعامل مع الملفات، وهذا يعني إضافة التصاريح على إستخدام هذه الوحدات! وهو أمر يعزز جانب الحماية والأمان.</p><h2><span
style="color: #404040"><strong>ثانيا: خصائص ومزايا البيئة التشغيلية:</strong></span></h2><p
style="text-align: right"><strong> </strong>البيئة التشغيلية تعني البيئة التقنية المحيطة كالعتاد Hardware، لغة البرمجة، والبنية التحتية لمزود الخدمة ومشغلها. ولهذه البيئة التشغيلية آليات لتعزيز أمن جهاز الأندرويد نبدأ بأولها:</p><p
style="text-align: right"><strong>- وحدة إدارة الذاكرة Memory Management Unit:</strong></p><p
style="text-align: right"><strong> </strong>من المهم تواجد هذه الوحدة والتي يفترض وجودها العديد من أنظمة التشغيل المعاصرة وعلى رأسها اللينكس.  وهي وحدة الكترونية “هاردوير\عتاد” تنظم عملية فصل الفراغات والمساحات المخصصة للعمليات Processes في الذاكرة. تستخدمها أنظمة التشغيل للتأكد من أن عملية “س” لا تقرأ ماهو مكتوب في المساحة المخصصة للعملية “ص” في الذاكرة، أو أن تقوم بالكتابة عليها وتعطيلها. هذا من شأنه تقليل احتمالية حصول العملية “س” على صلاحيات أكبر مما تملكه Privilege Escalation  عبر تعديل المعلومات المتعلقة بها في المساحة المخصصة لنظام التشغيل في الذاكرة.</p><p
style="text-align: right"><strong>- أمن النوع Type Safety:</strong></p><p
style="text-align: right"><strong> </strong>هذه خاصية من خصائص لغات البرمجة وفيها يتم فرض ضوابط على محتويات المتغيرات Variables لتتماهى مع نمط Format معين يضمن عدم تحقق أخطاء واستعمال غير مسؤول. الخطر المتأتي من غياب هذه الخاصية يتمثل في حصول عطب في الذاكرة وبالتالي احتمال حصول <a
href="http://coeia.edu.sa/index.php/ar/component/fabrik/details/3/73-Buffer-Overflow-Attack-%E2%80%93.html">هجوم Buffer-Overflow Attack</a> وتشغيل كود ضار (وهذا الهجوم يعتبر من أشد أنواع الهجمات خطرا في عالم أمن المعلومات).</p><p
style="text-align: right">تعتبر الجافا أقل عرضة لهذا السيناريو، ولكن التطبيقات والبرامج المكتوبة بلغة سي C (والأندرويد يسمح بتشغيل برامج\تطبيقات فيها أكواد مكتوبة بلغة السي) تبقى معرضة لهذا الخطر لأن خاصية Type Safety غير مفعلة بشكل افتراضي.</p><p
style="text-align: right">في آليات الاتصال بين العمليات <a
href="http://en.wikipedia.org/wiki/Inter-process_communication">Inter-Process Communication IPC</a> يتم تفعيل هذه الخاصية أيضا للتحقق من أمن نوع البيانات المتبادلة بين العمليات.</p><p
style="text-align: right"><strong>- المزايا الأمنية لمزود الخدمة ومشغلها:</strong></p><p
style="text-align: right"><strong> </strong>تقتبس منصة الأندرويد المزايا الأمنية التي يستخدمها مزودي الخدمة (المصادقة، التفويض، المحاسبة Authentication, Authorization, Accounting) فمثلا المصادقة والتأكد من الأصالة تتم عبر الشريحة SMS.</p><h2><span
style="color: #404040"><strong>ثالثا: آليات مختصة بالأندرويد:</strong></span></h2><p
style="text-align: right"><strong> </strong>يقدم الأندرويد الآليات الثلاث التالية: تصاريح\أذونات التطبيق، تغليف العناصر Component Encapsulation، التوقيع Signing.</p><p
style="text-align: center"><a
href="http://www.pingdroid.com/static/screenshots/android_permissions.png" rel="lightbox[3314]"><img
class="size-full wp-image-3343  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/07/android_permissions.png" alt="http://www.pingdroid.com/static/screenshots/android_permissions.png" width="200" height="300" /></a></p><p
style="text-align: right"><strong>- تصاريح\أذونات التطبيق:</strong></p><p
style="text-align: right"><strong> </strong>يفرض الأندرويد قيودا على التطبيقات التي تسعى للقيام بوظائف معينة ويطلب منها وجود إذن وتصريح. يوجد حوالي ١٠٠ إذن مختلف لتنظيم تنفيذ الوظائف منها على سبيل المثال إذن اجراء اتصال، استعمال الكاميرا، استخدام الانترنت، وحتى إذن توقيف الجهاز عن العمل نهائيا Brick! يتوجب على التطبيق إذاً توجيه استئذان صريح لتشغيل وظيفة معينة، وهذه التصاريح والأذونات مرتبطة بدرجات حماية:</p><p
style="text-align: right"><em>الدرجة العادية:</em> على مستوى التطبيق نفسه (ليس من الخطر الحصول على إذن لتشغيل عملية ضمن التطبيق نفسه).</p><p
style="text-align: right"><em>الدرجة الخطرة: </em>طلب الحصول على إذن قد يفضي إلى مخاطر معينة كدخول التطبيق إلى بيانات خاصة أو القيام بوظائف معينة، ولذا لا يمكن للتطبيق الحصول على هذا التصريح دون موافقة المستخدم صراحة.</p><p
style="text-align: right"><em>درجة التوقيع:</em> وهو تحصيل أذونات من قبل تطبيقات موقعة بنفس المفتاح الالكتروني لتطبيق آخر َتَحصّل مسبقا على نفس الأذونات من المستخدم.</p><p
style="text-align: right"><em>درجة التوقيع-أو-النظام:</em> حالة خاصة من النقطة السابقة ويتم فيها منح الأذونات بما يشابه النقطة السابقة بالإضافة الى أي حزمة منصبة في ملفات النظام.</p><p
style="text-align: right">إذا أثناء التنصيب، يتم التحقق مما اذا كان التطبيق موقعا بنفس المفتاح لتطبيق سابق (وبالتالي تحقيق الدرجة الثالة أو الرابعة) وإن لم يكن، يتم طلب تصريح المستخدم نفسه (الدرجة الأولى والثانية). وإذا لم يمنح هذه الأذونات أثناء التنصيب، سيفشل في العمل. ولا يمكن لتطبيق أن يطلب مزيدا من التصاريح بعد تنصيبه.</p><p
style="text-align: right"><strong>- تغليف العناصر Component Encapsulation:</strong></p><p
style="text-align: right"><strong> </strong>يقوم كل تطبيق بإحاطة عناصره وتغليفها في سياقه الخاص مانعا بذلك استخدامها من قبل تطبيقات أخرى (على فرض أن له رقم مستخدم مختلف عن التطبيقات الأخرى POSIX User ID وهو ما ذكرناه سابقا). وهذا يتم بتعطيل خاصية “تصدير exported” العنصر وجعل قيمتها المنطقية “خطأ Flase” وطبعا يمكن للمطور تعديلها الى “صواب True” لعناصر معينة يود تصديرها وإتاحتها للتطبيقات الأخرى.</p><p
style="text-align: right"><strong>- التوقيع Signing:</strong></p><p
style="text-align: right"><strong> </strong>توقيع التطبيقات وحزم ال .apk كما ذكرت في الأعلى يعتبر صمام حماية حيث أن التطبيق يكون صالحا طالما أن وثيقته الأمنية Certificate متوافقة مع المفتاح الالكتروني العام Public Digital Key .</p><p
style="text-align: right">== نهاية الجزء الأول ==</p><p
style="text-align: right">الجزء الثاني من الدراسة سيخوض في موضوع التقييم الأمني لإطار عمل الأندرويد بالتفصيل، والجزء الثالث والأخير سيستعرض حلولا أمنية لتحسين أمن وحماية نظام الأندرويد. انتظرونا <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/07/26/comprehensive-android-security-assessment1/feed/</wfw:commentRss> <slash:comments>18</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/07/android_security.jpg" /> </item> <item><title>مخترع تطبيقات الأندرويد App Inventor</title><link>http://ardroid.com/2010/07/12/app-inventor-for-android/</link> <comments>http://ardroid.com/2010/07/12/app-inventor-for-android/#comments</comments> <pubDate>Mon, 12 Jul 2010 16:07:41 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[app]]></category> <category><![CDATA[app inventor]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[inventor]]></category> <category><![CDATA[أداة مرئية]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[تطوير]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3148</guid> <description><![CDATA[تناقلت المواقع التقنية الإخبارية اليوم خبر صدور App Inventor for Android وهو ببساطة بيئة برمجية مرئية عبر الويب تمكن مستخدمي الأندرويد (من المبرمجين وغير المبرمجين) من عمل تطبيقات أندرويد.  ما تعنيه كلمة بيئة مرئية هو احتوائها على عناصر وأشكال مرئية لكل منها وظيفة معينة يتم تعديلها وربطها ببعضها البعض بالشكل الذي يرغب المستخدم أن يظهر&#8230; <a
href="http://ardroid.com/2010/07/12/app-inventor-for-android/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="199" height="199" src="http://ardroid.com/wp-content/uploads/2010/07/inventro.png" class="attachment-large" alt="inventro" title="inventro" /><p>تناقلت المواقع التقنية الإخبارية اليوم خبر صدور <a
href="http://appinventor.googlelabs.com/about/">App Inventor for Android</a> وهو ببساطة بيئة برمجية مرئية عبر الويب تمكن مستخدمي الأندرويد (من المبرمجين وغير المبرمجين) من عمل تطبيقات أندرويد.  ما تعنيه كلمة بيئة مرئية هو احتوائها على عناصر وأشكال مرئية لكل منها وظيفة معينة يتم تعديلها وربطها ببعضها البعض بالشكل الذي يرغب المستخدم أن يظهر التطبيق عليه (مشابهة للبيئة المستخدمة في برنامج <a
href="http://en.wikipedia.org/wiki/LabVIEW">LabView</a> ولعشاق الليجو <a
href="http://mindstorms.lego.com/en-us/Default.aspx">NXT</a>). لا حاجة لرؤية الأكواد ولا التدخل بكتابتها.</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/07/HelloPurrTwoBlocks.png" rel="lightbox[3148]"><img
class="aligncenter size-medium wp-image-3152" src="http://ardroid.com/wp-content/uploads/2010/07/HelloPurrTwoBlocks-300x141.png" alt="http://appinventor.googlelabs.com/learn/tutorials/hellopurr/hellopurr-part1.html" width="300" height="141" /></a></p><p>تتضمن <a
href="http://appinventor.googlelabs.com/learn/reference/components/index.html">العناصر</a> ما يلي:</p><ul><li>العناصر الأساسية (الأزرار، مربعات الاختيار، الصور، حقول نصية،&#8230;)</li><li>عناصر الوسائط المتعددة (الصور، عرض الفيديو، مشغل الصوت،&#8230;)</li><li>عناصر الرسوم المتحركة (كرة، شبح <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</li><li>عناصر اجتماعية (مربع اختيار المتصل، اختيار البريد الالكتروني، مربع الاتصال، ارسال رسالة قصيرة، التواصل عبر تويتر، &#8230;)</li><li>عناصر خاصة بالحساسات Sensors (حساس تسارع ميل الجهاز Accelerometer، تحديد المكان GPS، تحديد وضع الجهاز (أفقي | عمودي))</li><li>عناصر ترتيب ما يظهر على الشاشة (ترتيب العناصر التي تظهر على شاشة التطبيق أفقيا أو عموديا أو على شكل جدول)</li><li>عناصر أخرى (قاريء الباركود، محول النص الى صوت، التنبيهات، التعرف الى الصوت speech recognition،&#8230;)</li></ul><p>بالإضافة الى العناصر، هناك القطع البرمجية أو ال Blocks والتي تشكل الدوال methods/functions وما تتضمنه من منطق logic كما تتعامل مع البيانات المستخدمة في التطبيق ويتم ربطها بالعناصر المذكورة في الأعلى. <a
href="http://appinventor.googlelabs.com/learn/reference/blocks/index.html">القطع</a> تتضمن:</p><ul><li>قطع التعريف (تعريف الدوال ومدخلاتها ووظيفتها)</li><li>قطع النصوص (التعامل مع النصوص: تعريف النص، تجزيء النص، هل يحتوي النص على؟، هل يبدأ بحرف ..؟،&#8230;)</li><li>قطع القوائم (التعامل مع القوائم: إنشاء قائمة، استبدال عنصر في القائمة، البحث عن عنصر،&#8230;)</li><li>قطع الرياضيات (جميع العمليات الرياضية على المدخلات: العمليات الحسابية، المنطقية، الدوال الرياضية،&#8230;)</li><li>قطع المنطق (true, false, and, or,&#8230;.)</li><li>قطع التحكم (if, ifelse, for, while,&#8230;)</li><li>قطع الألوان (التعامل مع الألوان)</li></ul><p>App Inventor هو أداة ممتازة جدا وتحرك ذكي من غوغل. ففي <a
href="http://techcrunch.com/2010/07/11/google-app-inventor/">مقالة نشرها موقع TechCrunch</a>، شرح الكاتب وجهة نظره المتعلقة بقوة هذه الأداة في خلق جيل من المطورين الجدد لتطبيقات الأندرويد. فالبداية لهؤلاء المطورين ستكون عبر أداة  App Inventor (ونلاحظ أن الأداة في متناول جميع الفئات العمرية) التي بطبيعة الحال ستمكن المستخدمين من الوصول الى حدود معينة (حالها حال أية أداة برمجية من هذا النوع) تدفعهم فيما بعد لدخول عالم البرمجة الفعلي وكتابة الأكواد والذي سيعطيهم تحكما أكبر في صنع التطبيقات. عطفا على هذه النقطة، أتوقع شخصيا أن تقوم غوغل بعمل مسابقات بين المدارس لأفضل تطبيق باستخدام هذه الأداة، على غرار مسابقات <a
href="http://en.wikipedia.org/wiki/RoboCup_Junior">Lego Robocup</a> وهذا تحديدا من شأنه تشكيل الجيل الجديد من المبرمجين.</p><p>في الختام، أتوقع بأن تسهم هذه الأداة في عمل تطبيقات أكثر أمنا وفاعلية من تلك المنتشرة في سوق الأندرويد والتي تزعجنا في بعض الأحيان لكونها مليئة بالأخطاء البرمجية، حيث أن هذه الأداة ستجعل من عملية تصليح لأخطاء debugging أسهل.</p><p>أترككم مع المقطع الذي يشرح سهولة عمل التطبيقات وكيفية تنصيبها على الجهاز مباشرة:</p><p><a
href="http://ardroid.com/2010/07/12/app-inventor-for-android/"><em>Click here to view the embedded video.</em></a></p><p><strong><span
style="text-decoration: underline">تحديث ١:</span></strong></p><p>أطلعنا <a
href="http://barcadroid.com/">BarcaDroid</a> أحد أصدقاء موقعنا الدائمين على بعض العيوب التي وجدها في هذه الأداة (وهو ما كنا قد أشرنا اليه بوجود محدودية في هذا النوع من الأدوات البرمجية، الا أن صديقنا أورد عددا منها بالتفصيل) وهي:</p><p>١- الكود الذي تنتجه الأداة ليس مثاليا optimized (أي احتوائه على أكواد زائدة يمكن الاستغناء عنها، وهذا موضوع حساس في عالم تطبيقات الأجهزة الذكية والنقالة)</p><p>٢- لا يمكنك الإطلاع على كود التطبيق بعد الانتهاء منه، ولا يمكنك التعديل عليه باستخدام الحزمة البرمجية SDK.</p><p>٣- التطبيقات التي تنتجها الأداة أكبر حجما من تلك التي تؤدي نفس الغرض والمطورة يدويا على مستوى الكود.</p><p>٤- عدد الدوال المتوفرة في الأداة أقل بكثير من عددها في ال SDK.</p><p>٥- لا يمكنك عمل widgets للتطبيقات (الwidgets هي النماذج المصغرة من التطبيق والتي يمكنك وضعها على الشاشة الرئيسية للتحكم بالتطبيق عبرها).</p><p>٦- حاليا، لا يمكن رفع التطبيقات المطورة بهذه الأداة على سوق الأندرويد! ولم تعلن غوغل حتى الآن عما اذا كانت ستفعل هذه الخاصية.</p><p>٧- ال app inventor لا يدعم الاتصال ورفع التطبيقات المطورة على جميع أجهزة الأندرويد (أي أنه عليك التأكد من دعم هذه الأداة لجهازك حتى تتمكن من تطوير ورفع التطبيقات عليه عبر سلك اليو اس بي).</p><p>٨- لا توجد خاصية تطوير التطبيق باستخدام هذه الأداة دون وجود اتصال فعال بالانترنت (ال app inventor يعمل على غيمة غوغل الحوسبية)، وهذا يعيق من كان سفرهم كثيرا.</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/07/12/app-inventor-for-android/feed/</wfw:commentRss> <slash:comments>23</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/07/inventro.png" /> </item> <item><title>سلسلة تعلم برمجة تطبيقات الأندرويد .. الدرس السادس</title><link>http://ardroid.com/2010/02/15/android-programming-series-l6/</link> <comments>http://ardroid.com/2010/02/15/android-programming-series-l6/#comments</comments> <pubDate>Mon, 15 Feb 2010 21:29:45 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[layout]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برامج]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=1419</guid> <description><![CDATA[مرحبا من جديد.. وأعتذر على التأخر في طرح هذه الحلقة، ونعدكم بطرح مكثف نسبيا في الأيام القادمة لنبدأ! نلاحظ أننا في الدروس السابقة كنا نضع الأزرار والحقول النصية وغيرها من العناصر التي تستقبل مدخلات من المستخدم أو تعرض نتائجا له (وتسمى Widgets) بداخل وسم في ملف الXML واسمه LinearLayout. هذا الوسم يمثل وعاء Container توضع&#8230; <a
href="http://ardroid.com/2010/02/15/android-programming-series-l6/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="485" height="88" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.57.30-PM.png" class="attachment-large" alt="Screen shot 2010-02-15 at 11.57.30 PM" title="Screen shot 2010-02-15 at 11.57.30 PM" /><p
dir="rtl">مرحبا من جديد.. وأعتذر على التأخر في طرح هذه الحلقة، ونعدكم بطرح مكثف نسبيا في الأيام القادمة <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
dir="rtl">لنبدأ!<br
/> نلاحظ أننا في الدروس السابقة كنا نضع الأزرار والحقول النصية وغيرها من العناصر التي تستقبل مدخلات من المستخدم أو تعرض نتائجا له (وتسمى Widgets) بداخل وسم في ملف الXML واسمه LinearLayout. هذا الوسم يمثل وعاء Container توضع في داخله الأزرار وال Widgets الأخرى. ولكنه ليس الوسم الوحيد المستخدم.</p><p
dir="rtl">سنتعرف في هذا الدرس على وظيفة و كيفية إنشاء ما يلي:</p><p
dir="rtl">١- وعاء &lt;LinearLayout&gt;</p><p
dir="rtl">٢- وعاء &lt;TableLayout&gt;</p><p
dir="rtl">٣- وعاء &lt;ScrollView&gt;</p><p
dir="rtl"><p
dir="rtl"><strong>١- وعاء &lt;LinearLayout&gt;</strong></p><p
dir="rtl">لدينا عادة الخصائص\العناصر التالية:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div><p
dir="rtl">بالنسبة لخاصية التوجه Orientation يتم عبرها تحديد طريقة رصف الأزرار وال Widgets في الصفحة. الوضع الرأسي Vertical يعني وضع العناصر بشكل عمودي، أما Horizontal فيعني صفها بشكل أفقي.</p><p
dir="rtl">خاصية layout_width مسؤولة عن تحديد عرض الوعاء، ونحن في هذه الحالة نريد من الوعاء ملأ الشاشة واحتلال جميع المساحات، لذلك نختار fill_parent.</p><p
dir="rtl">خاصية layout_height يتم عبرها تحديد ارتفاع الوعاء، وأيضا نريده ملأ المساحات كاملة.</p><p
dir="rtl">نقوم الآن بإنشاء زر لنرى كيفية التحكم بطريقة ظهوره في واجهة التطبيق.</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">بالنسبة للخاصية الأولى، android:text فهي المسؤولة عن تحديد النص المراد ظهوره على الزر. android:id تقوم بإعطاء رقم خاص للعنصر يميزه عن غيره. بالنسبة للخاصيتين الأخيرتين فقد تم شرحهما في الأعلى، ولكني سأتعرض للقيم التي من الممكن إعطاءها لهما. هناك ٣ احتمالات. الأول fill_parent الذي يقوم بملىء المساحة الخالية بالزر بحسب الخاصية التي أعطي لها (layout_width أو layout_height). الثاني هو wrap_content والذي يقوم بضغط حجم الزر بحسب محتواه النصي. الاحتمال الثالث هو أن يتم تحديد الارتفاع والعرض بمقياس البيكسل.</p><p
dir="rtl">مثال للحالة الأولى والثانية (سيملأ الزر المساحات المجاورة له بالعرض، ولكن ارتفاعه سيكون مضغوطا):</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.02.10-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1422  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.02.10-PM-300x110.png" alt="" width="300" height="110" /></a></p><p
dir="rtl"><p
dir="rtl">(قم بتجربة الاحتمالات الأخرى، ويمكنك الاستعانة بتبويب Layout لاستعراض نتيجة التصميم بدلا من تشغيل التطبيق في كل مرة.. كما يمكنك استخدام هذه الواجهة لتصميم صفحة النشاط في التطبيق دون كتابة كود ال XML في كل مرة)</p><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.07.17-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1423  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.07.17-PM-300x231.png" alt="" width="300" height="231" /></a></p><p
dir="rtl"><p
dir="rtl">مثال للحالة الثالثة:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;300px&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;100px&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.12.57-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1424  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.12.57-PM-300x126.png" alt="" width="300" height="126" /></a></p><p
dir="rtl"><p
dir="rtl">سنقوم بإضافة زر ثانٍ، ولكننا نريد وضعه الآن بجانب الزر الأول. كيف نقوم بذلك؟ لا ننس الخاصية الأولى الخاصة بوعاء LinearLayout وهي Orientation. نقوم بتعديلها ليتم عرض ال Widgets بشكل أفقي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;horizontal&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div><p
dir="rtl">والزر الثاني (قم بتسميته بنفس اسم الزر السابق):</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.57.30-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1433  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.57.30-PM-300x54.png" alt="" width="300" height="54" /></a></p><p
dir="rtl"><p
dir="rtl"><p
dir="rtl">سنقوم الآن بالتعرف على خاصية الوزن android:layout_weight والتي تقوم بإعطاء أولوية نقوم بتحديدها لأحد الزرين ليحتل أعلاهما أولوية كمية أكبر من المساحات الفارغة. فمثلا:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_weight</span>=<span style="color: #ff0000;">&quot;1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_weight</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.31.56-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1426  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.31.56-PM-300x95.png" alt="" width="300" height="95" /></a></p><p
dir="rtl"><p
dir="rtl">هناك عدد من الخصائص الأخرى والتي يتم عبرها التحكم بطريقة وضع ال Widgets فلدينا مثلا android:layout_agravity وهي مناسبة أكثر في حالة التعامل مع الWidgets عند رصفهم رأسيا ونقوم عبرها بالتحكم بخاصية المحاذاة alignment التي سيكون عليها الزر مثلا. وفي حال أردنا التحكم بالمحاذاة في طريقة الرصف الأفقية، فمن الأفضل استخدام android:layout_marginLeft وتحديد عدد النقاط Pixels التي تفصل بين الزر والآخر.</p><p
dir="rtl">مثال على android:layout_marginLeft في حالة الرصف الأفقية android:orientation=&#8221;horizontal&#8221; :</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_marginLeft</span>=<span style="color: #ff0000;">&quot;180px&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.47.07-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1427  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.47.07-PM-300x44.png" alt="" width="300" height="44" /></a></p><p
dir="rtl"><p
dir="rtl">ومثال على android:layout_gravity بالوضع الرأسي android:orientation=&#8221;vertical&#8221;:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;right&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.31.44-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1428  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.31.44-PM-300x81.png" alt="" width="300" height="81" /></a></p><p
dir="rtl"><p
dir="rtl">طبعا نلاحظ القائمة المنسدلة والتي تحوي عددا من القيم التي يمكنكم تجربتها ورؤية تأثيرها.</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.32.23-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1429  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.32.23-PM-300x138.png" alt="" width="300" height="138" /></a></p><p
dir="rtl"><p
dir="rtl">قوموا بتجربة خصائص أخرى كال android:gravity و android:paddingLeft وغيرها ولاحظوا تأثيراتها.</p><p
dir="rtl">في نهاية هذا القسم، تجدر الإشارة الى أنه يمكننا تغيير خاصية توجه\وضع الوعاء Orientation أثناء عمل التطبيق. فمثلا يمكننا برمجة التطبيق بأن يقوم بتغيير التوجه ليصبح بالوضع الأفقي عند ضغط زر. تتم هذه العملية باستدعاء دالة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">x.<span style="color: #006633;">setOrientation</span><span style="color: #009900;">&#40;</span>LinearLayout.<span style="color: #006633;">HORIZONTAL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p
dir="rtl">حيث x هي اسم ال Widget ، زر مثلا.</p><p
dir="rtl"><strong>٢- وعاء &lt;TableLayout&gt;<span
style="font-weight: normal"> </span></strong></p><p
dir="rtl">يأخذ هذا الوعاء شكل الجدول. لذا، فإننا نستخدم وسم &gt;TableRow&lt; كلما أردنا إنشاء صف جديد. يتميز هذا الوعاء بعدد من الخصائص:</p><p
dir="rtl"><span
style="color: #339966">أ-</span> android:layout_span  : وهي خاصية تحدد المدى الذي نود أن يحتله العنصر، وتأخذ قيمة عددية. القيمة العددية تحدد بشكل غير مباشر عدد الأعمدة Columns داخل الصف.</p><p
dir="rtl"><span
style="color: #339966">ب-</span> android:layout_column : وهي خاصية تحدد رقم العمود الذي سيتوضع عنده العنصر Widget. وترقيم الأعمدة يبدأ من الصفر، بمعنى أن أول عمود رقمه صفر، وهكذا.</p><p
dir="rtl"><span
style="color: #339966">ج-</span> android:stretchColumns : وهي خاصية محصورة بالوعاء نفسه (أي لا يمكن تطبيقها على العناصر Widgets  ) وهي تعمل على شد العمود ليغطي المساحاة الفارغة، وتأخذ قيمة عددية تحدد رقم العمود.</p><p
dir="rtl"><span
style="color: #339966">د-</span> android:shrinkColumns : وهي عكس الخاصية السابقة.</p><p
dir="rtl">مثال توضيحي:</p><p
dir="rtl">للحصول على التصميم التالي:</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.11.47-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1430  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.11.47-PM-202x300.png" alt="" width="202" height="300" /></a></p><p
dir="rtl">نستعمل الكود:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:stretchColumns</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBox</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;checkBox&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/CheckBox01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;0&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/CheckBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><strong>٣- وعاء &lt;ScrollView&gt;</strong></p><p
dir="rtl">نستعمل هذا الوعاء في حالة كان المحتوى الذي نود عرضه في الصفحة كبيرا بحيث أنه لا يمكن وضعه في صفحة واحدة. طريقة عمله سهلة وهي تضمين التصميم الذي نرغبه بداخله. فمثلا، يمكننا وضع الكود الذي كتبناه في الأعلى بداخله (بعد إضافة عدد من العناصر Widgets حتى يتطلب عرض المحتوى أكثر من صفحة).</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ScrollView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:stretchColumns</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBox</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;checkBox&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/CheckBox01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;0&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/CheckBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ScrollView<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.25.55-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1431  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.25.55-PM-202x300.png" alt="" width="202" height="300" /></a></p><p
dir="rtl"><p
dir="rtl">بقي لدينا وعاء آخر وهو &lt;RelativeLayout&gt; وسأتكلم عنه في درس لاحق إن شاء الله..</p><p
dir="rtl">أتمنى أن يكون هذا الدرس قد أعجبكم.. <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
dir="rtl">بالتوفيق..</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/02/15/android-programming-series-l6/feed/</wfw:commentRss> <slash:comments>41</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/02/android-bauhaus-background.jpg" /> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)

Served from: ardroid.com @ 2012-02-11 05:51:20 -->
