رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
می خواهم برای اندروید برنامه بنویسم؟!(قسمت 1)
#1
سیستم عامل اندروید یک پشته نرم افزاری است که بر روی هسته لینوکس 2.6 پیاده سازی شده است و امکانات زیادی را برای برنامه نویسی ایجاد کرده است.
ویژگی های سیستم عامل:
Application framework enabling reuse and replacement of components
Dalvik virtual machine optimized for mobile devices
Integrated browser based on the open source WebKit engine
Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
SQLite for structured data storage
Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware dependent)
Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
معماری سیستم عامل اندروید
معماری سیستم عامل اندروید را در تصویر زیر می توان خلاصه نمود:

[عکس: bm51ye9c85rignntwmy8.jpg]
سیستم عامل اندروید همراه با تعدادی نرم افزار اصلی عرضه می شود مانند: برنامه های اس ام اس، تقویم، نقشه، مدیریت تماس. این نرم افزارها با جاوا نوشته شده اند.
Application framework
با این هدف ایجاد شده است که برنامه نویس برای نوشتن برنامه های غنی ای که با سیستم عامل تعامل داشته باشند، باز کند. بنابرین برنامه نویس می تواند از منابع سیستم استفاده کند، سرویس پس زمینه ایجاد کند، به سایر برنامه ها و سرویس ها دسترسی داشته باشد.
هم چنین View ها مانند:Button،textView و ... در Application framework قرار دارد.
Libraries
کتابخانه های اندروید هستند که از طریق application framework برای برنامه نویس ارئه شده اند.
این کتابخانه ها، کتابخانه ی کراس-کامپایلی هستند که با زبان سی/سی++ نوشته شده اند.بخش اصلی این کتاب خانه ها را در زیر قابل مشاهده هستند:

System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
SGL - the underlying 2D graphics engine
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
FreeType - bitmap and vector font rendering
SQLite - a powerful and lightweight relational database engine available to all applications
Android runtime
اندروید شامل تعدادی از کتابخانه های جاوا است که برنامه ها از متد های آن ها استفاده می کنند. این کتابخانه ها تقریبا شامل موارد زیر هستند:
android
android.accessibilityservice
android.accounts
android.app
android.app.admin
android.app.backup
android.appwidget
android.bluetooth
android.content
android.content.pm
android.content.res
android.database
android.database.sqlite
android.gesture
android.graphics
android.graphics.drawable
android.graphics.drawable.shapes
android.hardware
android.inputmethodservice
android.location
android.media
android.net
android.net.http
android.net.wifi
android.opengl
android.os
android.preference
android.provider
android.sax
android.service.wallpaper
android.speech
android.speech.tts
android.telephony
android.telephony.cdma
android.telephony.gsm
android.test
android.test.mock
android.test.suitebuilder
android.text
android.text.format
android.text.method
android.text.style
android.text.util
android.util
android.view
android.view.accessibility
android.view.animation
android.view.inputmethod
android.webkit
android.widget
dalvik.bytecode
dalvik.system
java.awt.font
java.beans
java.io
java.lang
java.lang.annotation
java.lang.ref
java.lang.reflect
java.math
java.net
java.nio
java.nio.channels
java.nio.channels.spi
java.nio.charset
java.nio.charset.spi
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.sql
java.text
java.util
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
java.util.jar
java.util.logging
java.util.prefs
java.util.regex
java.util.zip
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
javax.microedition.khronos.egl
javax.microedition.khronos.opengles
javax.net
javax.net.ssl
javax.security.auth
javax.security.auth.callback
javax.security.auth.login
javax.security.auth.x500
javax.security.cert
javax.sql
javax.xml
javax.xml.datatype
javax.xml.namespace
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stream
javax.xml.validation
javax.xml.xpath
junit.framework
junit.runner
org.apache.http
org.apache.http.auth
org.apache.http.auth.params
org.apache.http.client
org.apache.http.client.entity
org.apache.http.client.methods
org.apache.http.client.params
org.apache.http.client.protocol
org.apache.http.client.utils
org.apache.http.conn
org.apache.http.conn.params
org.apache.http.conn.routing
org.apache.http.conn.scheme
org.apache.http.conn.ssl
org.apache.http.conn.util
org.apache.http.cookie
org.apache.http.cookie.params
org.apache.http.entity
org.apache.http.impl
org.apache.http.impl.auth
org.apache.http.impl.client
org.apache.http.impl.conn
org.apache.http.impl.conn.tsccm
org.apache.http.impl.cookie
org.apache.http.impl.entity
org.apache.http.impl.io
org.apache.http.io
org.apache.http.message
org.apache.http.params
org.apache.http.protocol
org.apache.http.util
org.json
org.w3c.dom
org.w3c.dom.ls
org.xml.sax
org.xml.sax.ext
org.xml.sax.helpers
org.xmlpull.v1
org.xmlpull.v1.sax2
فایل های کامپایل شده ی جاوا که پسوند .class دارند به فایل ها .dex(dalvik executive) تبدیل شده و در ماشین مجازی dalvik، که یک ماشین مجازی جاوای بهینه شده برای اندروید هست؛ اجرا می شوند.
dalvik برای عملیات های سطح پایین تر مثل مدیریت سطح پایین حافظه به هسته ی لینوکس وابسته است.
Linux kernel
اندروید به دلیل ویژگی های لینوکس مانند: امنیت، مدیریت حافظه، مدیریت پردازه ها، قابلیت های شبکه از هسته ی لینوکس استفاده می کند. همچنین Kernel به عنوان یک لایه میانی بین سخت افزار و نرم افزار قرار گرفته است و شامل درایور های قطعات است.

چه روشی هایی برای برنامه نویسی در اندروید وجود دارد؟
  • برنامه نویسی جاوا با استفاده از Android SDK و eclipse plugin (معمول ترین روش)
  • برنامه نویسی سی/سی++ با استفاده از Android NDK (برای کارائی بالاتر- مختص نوشتن بازی ها و...)
  • روش های دیگر!
برنامه نویسی با جاوا

ابتدا آخرین نسخه JDK x86 را دانلود و نصب کنید.
eclipse classic 3.5 x86 را از سایت eclipse.org دانلود و نصب کنید.(توجه کنید که این نسخه را دانلود کنید، ممکن است نسخه های بالاتر هماهنگی لازم را نداشته باشند.)
SDK را دانلود کنید و کامپوننت های مورد نیازتان را نصب کنید:
Platform Package Size
Windows android-sdk_r13-windows.zip 36487911 bytes
installer_r13-windows.exe (Recommended) 36533357 bytes
Mac OS X (intel) android-sdk_r13-mac_x86.zip 30233944 bytes
Linux (i386) android-sdk_r13-linux_x86.tgz 30034328 bytes
SDK شامل tools و Virtual device است و برای برنامه نویسی لازم است مواردی را به آن اضافه کنید.

کامپوننت ها:

کامپوننت ها را می بایست از فایل SDK manager.exe دانلود و نصب کرد. ولی البته این روش خوبی نیست و راه بهتر دانلود کامپوننت و ریختن محتویات آن ها در پوشه های مربوطه در پوشه SDK است.
برای کامل کردن SDK به حداقل چند platform و platform-tools نیاز است.
در صورت نیاز می توانید موارد (غیر ضروری) زیر را با SDK manager.exe به SDK اضافه کنید.
َAndroid documentation
USB DRIVERS (http://dl.google.com/android/reposit...03-windows.zip)
Sample project
market_licensing
...
حداقل چند تا از پلتفرم هایی را که نیاز دارید دانلود کنید و در پوشه platform،درون پوشه ای که SDK را نصب کردید بریزید:
Windows

PLATFORM 1.1 REVISION 1
http://dl.google.com/android/reposit...r1-windows.zip

PLATFORM 1.5 REVISION 4
http://dl.google.com/android/reposit...04-windows.zip

PLATFORM 1.6 REVISION 3
http://dl.google.com/android/reposit...03-windows.zip

Mac

PLATFORM 1.1 REVISION 1
http://dl.google.com/android/reposit..._r1-macosx.zip

PLATFORM 1.5 REVISION 4
http://dl.google.com/android/reposit...r04-macosx.zip

PLATFORM 1.6 REVISION 3
http://dl.google.com/android/reposit...r03-macosx.zip


Linux

PLATFORM 1.1 REVISION 1
http://dl.google.com/android/reposit...1_r1-linux.zip

PLATFORM 1.5 REVISION 4
http://dl.google.com/android/reposit..._r04-linux.zip

PLATFORM 1.6 REVISION 3
http://dl.google.com/android/reposit..._r03-linux.zip


Version: 2.2
Revision: 2

http://dl.google.com/android/repository/...-linux.zip
http://dl.google.com/android/repository/...macosx.zip
http://dl.google.com/android/repository/...indows.zip

Version: 2.1
Revision: 2

http://dl.google.com/android/repository/...-linux.zip
http://dl.google.com/android/repository/...macosx.zip
http://dl.google.com/android/repository/...indows.zip

Version: 2.01
Revision: 1

http://dl.google.com/android/repository/...-linux.zip
http://dl.google.com/android/repository/...macosx.zip
http://dl.google.com/android/repository/...indows.zip

Version: 2.0
Revision: 3

http://dl.google.com/android/repository/...-linux.zip
http://dl.google.com/android/repository/...macosx.zip
http://dl.google.com/android/repository/...indows.zip

Version: 3.0
Revision: 2
API Level: 11

http://dl.google.com/android/repository/...-linux.zip

Version: 3.1
Revision: 3
API Level: 12

http://dl.google.com/android/repository/...-linux.zip

Version: 3.2
Revision: 1
API Level: 13

http://dl.google.com/android/repository/...-linux.zip


Google API's

http://dl.google.com/android/reposit...apis-3-r03.zip

http://dl.google.com/android/reposit...apis-4_r02.zip

http://dl.google.com/android/reposit...apis-5_r01.zip

http://dl.google.com/android/reposit...apis-6_r01.zip

http://dl.google.com/android/reposit...apis-7_r01.zip

http://dl.google.com/android/reposit...apis-8_r02.zip
platform-tools
نصب platform-tools برای کامل شدن SDK ضروری است. مواظب باشید که platform-tools را با tools اشتباه نگیرید که همراه با SDK نصب می شود و حتما آن را دانلود کنید تا در نصب ADT دچار مشکل نشوید.
[u]windows[/i]

http://dl.google.com/android/repository/platform-tools_r05-windows.zip

[u]mac[/i]

http://dl.google.com/android/repository/platform-tools_r05-macosx.zip



[/url]
ADT را دانلود و بر روی eclipse نصب کنید.([url=http://wiki.eclipse.org/FAQ_How_do_I_install_new_plug-ins%3F]آموزش نصب پلاگین)

یک پروژه اندروید ایجاد کنید و کارتان را با پروژه های نمونه آغاز کنید.
برنامه نویسی با NDK
مراحلی را که برای برنامه نویسی با جاوا لازم است طی کنید(نصب SDK,JDK و سایر موارد گفته شده) و سپس NDK را دانلود کنید.

mall">Platform Package Size
Windows android-ndk-r6b-windows.zip 67670219 bytes
Mac OS X (intel) android-ndk-r6b-darwin-x86.tar.bz2 52798843 bytes
Linux 32/64-bit (x86) android-ndk-r6b-linux-x86.tar.bz2 46532436 bytes
باینری های ایجاد شده با NDK را می توان با استفاده از Terminal در اندروید اجرا کرد.

[عکس: 210-hellondk-embed.png]

البته می توان با استفاده از SDK و NDK برای اندروید APK ساخت.
[عکس: NDKDemo.png]
برای اجرا NDK در ویندوز احتمالا نیاز به Cygwin دارید( اگر همراه NDK نباشد)
برای آشنایی بیشتر با طرز کار با NDK از Documentation های Android NDK استفاده کنید.
روش های دیگر:
این روش نیاز به SDK ندارد و کد ها را می توان درون دستگاه نوشت و اجرا کرد(برای کد نویسی استفاده از پی سی بهتر است)
در این روش ابتکاری برنامه با زبان پایتون نوشته می شود و از HTML و webView API به عنوان GUI استفاده می شود.
رویدادهای HTML از طریق متد های خاصی به پایتون فرستاده می شود و برعکس

منبع
[عکس: <a href=www.Mojsazan.com.gif]" class="mycode_img" />
پاسخ
سپاس شده توسط


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ماژول نویسی برای هسته لینوکس مهرداد عباسی 14 25,028 04-04-2014, 03:54 AM
آخرین ارسال: digicom
  دانلود کتاب آموزش زبان برنامه نویسی برای سیستم های آندروید مهرداد عباسی 1 6,185 12-04-2013, 12:45 PM
آخرین ارسال: harry_persian138
  برنامه نویسی موبایل در لینوکس مهرداد عباسی 2 6,329 01-02-2012, 02:49 PM
آخرین ارسال: مهرداد عباسی
  Scala؛ جدیدترین زبان برنامه نویسی آندروید مهرداد عباسی 0 3,848 12-10-2011, 01:41 PM
آخرین ارسال: مهرداد عباسی
  کامپایلر GCC برای اندروید مهرداد عباسی 0 5,021 12-10-2011, 01:37 PM
آخرین ارسال: مهرداد عباسی
  اسکریپت نویسی در اندروید مهرداد عباسی 0 4,148 12-10-2011, 01:35 PM
آخرین ارسال: مهرداد عباسی
  برنامه نویسی با Android NDK مهرداد عباسی 0 6,852 12-10-2011, 01:32 PM
آخرین ارسال: مهرداد عباسی
  دانلود c4droid: کامپایلر c/c++ برای سیستم عامل اندروید + GCC plug-in مهرداد عباسی 0 9,145 12-10-2011, 01:30 PM
آخرین ارسال: مهرداد عباسی
  شروع کار برای برنامه نویسی اندروید مهرداد عباسی 0 4,997 12-10-2011, 01:27 PM
آخرین ارسال: مهرداد عباسی
  افزونه گوگل برای Eclipse کدباز شد زیبا رئیسی 0 3,352 11-23-2011, 11:15 AM
آخرین ارسال: زیبا رئیسی

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان