[安卓公社教程第一帖]android操作系统详解

上传人:hjk****65 文档编号:181140964 上传时间:2023-01-10 格式:DOCX 页数:19 大小:30.16KB
收藏 版权申诉 举报 下载
[安卓公社教程第一帖]android操作系统详解_第1页
第1页 / 共19页
[安卓公社教程第一帖]android操作系统详解_第2页
第2页 / 共19页
[安卓公社教程第一帖]android操作系统详解_第3页
第3页 / 共19页
资源描述:

《[安卓公社教程第一帖]android操作系统详解》由会员分享,可在线阅读,更多相关《[安卓公社教程第一帖]android操作系统详解(19页珍藏版)》请在装配图网上搜索。

1、安卓公社教程第一帖案桌操作系统详解systemapp 这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是data文件夹中。下面是详细的介绍:systemappAlarmClock.apk 闹钟systemappAlarmClock.odexsystemappBrowser.apk 浏览器systemappBrowser.odexsystemappBugreport.apk Bug报告systemappBugreport.odexsystemappCalculator.apk 计算器systema

2、ppCalculator.odexsystemappCalendar.apk 日历systemappCalendar.odexsystemappCalendarProvider.apk 日历提供systemappCalendarProvider.odexsystemappCamera.apk 照相机systemappCamera.odexsystemappcom.amazon.mp3.apk 亚马逊音乐systemappContacts.apk 联系人systemappContacts.odexsystemappDownloadProvider.apk 下载提供systemappDownloa

3、dProvider.odexsystemappDrmProvider.apk DRM数字版权提供systemappDrmProvider.odexsystemappEmail.apk 电子邮件客户端systemappEmail.odexsystemappFieldTest.apk 测试程序systemappFieldTest.odexsystemappGDataFeedsProvider.apk GoogleData提供systemappGDataFeedsProvider.odexsystemappGmail.apk Gmail电子邮件systemappGmail.odexsystemapp

4、GmailProvider.apk Gmail提供systemappGmailProvider.odexsystemappGoogleApps.apk 谷歌程序包systemappGoogleApps.odexsystemappGoogleSearch.apk 搜索工具systemappGoogleSearch.odexsystemappgtalkservice.apk GTalk服务systemappgtalkservice.odexsystemappHTMLViewer.apk HTML查看器systemappHTMLViewer.odexsystemappIM.apk 即使通讯组件包含M

5、SN、yahoo通systemappImCredentialProvider.apksystemappImProvider.apksystemappImProvider.odexsystemappLauncher.apk 启动加载器systemappLauncher.odexsystemappMaps.apk 电子地图systemappMaps.odexsystemappMediaProvider.apk 多媒体播放提供systemappMediaProvider.odexsystemappMms.apk 短信、彩信systemappMms.odexsystemappMusic.apk 音乐播

6、放器systemappMusic.odexsystemappMyFaves.apk T-Mobile MyFaves程序systemappMyFaves.odexsystemappPackageInstaller.apk apk安装程序systemappPackageInstaller.odexsystemappPhone.apk 电话拨号器systemappPhone.odexsystemappSettings.apk 系统设置systemappSettings.odexsystemappSettingsProvider.apk 设置提供systemappSettingsProvider.o

7、dexsystemappSetupWizard.apk 设置向导systemappSetupWizard.odexsystemappSoundRecorder.apk 录音工具systemappSoundRecorder.odexsystemappStreet.apk 街景地图systemappStreet.odexsystemappSync.apk 同步程序systemappSync.odexsystemappTalk.apk 语音程序systemappTalk.odexsystemappTelephonyProvider.apk 电话提供systemappTelephonyProvider

8、.odexsystemappUpdater.apk 更新程序systemappUpdater.odexsystemappVending.apk 制造商信息systemappVending.odexsystemappVoiceDialer.apk 语音拨号器systemappVoiceDialer.odexsystemappYouTube.apk Youtube视频systemappYouTube.odexsystembin这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件,Android手机网就主要文件做下简单的分析介绍

9、:systembinakmdsystembinamsystembinapp_process 系统进程systembindalvikvm Dalvik虚拟机宿主systembindbus-daemon 系统BUS总线监控systembindebuggerd 调试器systembindebug_tool 调试工具systembindexopt DEX选项systembindhcpcd DHCP服务器systembindumpstate 状态抓取器systembindumpsys 系统抓取器systembindvzsystembinfillupsystembinflash_image 闪存映像sys

10、tembinhciattachsystembinhcid HCID内核systembinhostapdsystembinhostapd_clisystembinhtclogkernelsystembininputsystembininstalldsystembinitrsystembinlinkersystembinlogcat Logcat日志打印systembinlogwrappersystembinmediaserversystembinmonkeysystembinmountd 存储挂载器systembinnetcfg 网络设置systembinping Ping程序systembin

11、playmp3 MP3播放器systembinpm 包管理器systembinqemud QEMU虚拟机systembinradiooptions 无线选项systembinrild RIL组件systembinsdptoolsystembinsdutilsystembinservice systembinservicemanager 服务管理器systembinshsystembinssltest SSL测试systembinsurfaceflinger 触摸感应驱动systembinsvc 服务systembinsystem_serversystembintelnetd Telnet组件s

12、ystembintoolboxsystembinwlan_loadersystembinwpa_clisystembinwpa_supplicantsystemetc从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。systemetcapns-conf.xml APN接入点配置文件systemetcAudioFilter.csv 音频过滤器配置文件systemetcAudioPara4.csvsystemetcbookmarks.xml 书签数据库systemetcdbus.conf 总线监视配置文件systemetcdhcpcdsystemetcevent-log-t

13、agssystemetcfavorites.xml 收藏夹systemetcfirmware 固件信息systemetcgps.conf GPS设置文件systemetchcid.conf内核HCID配置文件systemetchosts 网络DNS缓存systemetcinit.goldfish.shsystemetclocation 定位相关systemetcmountd.conf 存储挂载配置文件systemetcNOTICE.html 提示网页systemetcpermissions.xml 权限许可systemetcpvplayer.conf systemetcsecurity sys

14、temetcwifi WLAN相关组件systemetcdhcpcddhcpcd-hookssystemetcdhcpcddhcpcd-run-hookssystemetcdhcpcddhcpcd.confsystemetcdhcpcddhcpcd-hooks01-testsystemetcdhcpcddhcpcd-hooks20-dns.confsystemetcdhcpcddhcpcd-hooks95-configuredsystemetcfirmwarebrf6300.binsystemetclocationgpspage_break systemetclocationgpslocati

15、on 定位相关systemetclocationgpsnmea GPS数据解析systemetclocationgpspropertiessystemetcsecuritycacerts.bkssystemetcsecurityotacerts.zip OTA下载验证systemetcwifiFw1251r1c.binsystemetcwifitiwlan.inisystemetcwifiwpa_supplicant.conf WPA验证组件systemfonts字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T-Mobile G1上可以

16、清楚的看到显示简体中文正常,其中DroidSansFallback.ttf文件大小systemfontsDroidSans-Bold.ttfsystemfontsDroidSans.ttfsystemfontsDroidSansFallback.ttfsystemfontsDroidSansMono.ttfsystemfontsDroidSerif-Bold.ttfsystemfontsDroidSerif-BoldItalic.ttfsystemfontsDroidSerif-Italic.ttfsystemfontsDroidSerif-Regular.ttfsystemframework

17、framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。systemframeworkam.jarsystemframeworkam.odexsystemframeworkandroid.awt.jar AWT库systemframeworkandroid.awt.odexsystemframeworkandroid.policy.jar systemframeworkandroid.policy.odexsystemframeworkandroid.test.runner.jarsystemframeworkandroid.test.runner.odexsyste

18、mframeworkcom.google.android.gtalkservice.jar GTalk服务systemframeworkcom.google.android.gtalkservice.odexsystemframeworkcom.google.android.maps.jar 电子地图库systemframeworkcom.google.android.maps.odexsystemframeworkcore.jar 核心库,启动桌面时首先加载这个systemframeworkcore.odexsystemframeworkext.jarsystemframeworkext.o

19、dexsystemframeworkframework-res.apksystemframeworkframework-tests.jarsystemframeworkframework-tests.odexsystemframeworkframework.jarsystemframeworkframework.odexsystemframeworkinput.jar 输入库systemframeworkinput.odexsystemframeworkitr.jarsystemframeworkitr.odexsystemframeworkmonkey.jarsystemframeworkm

20、onkey.odexsystemframeworkpm.jar 包管理库systemframeworkpm.odexsystemframeworkservices.jarsystemframeworkservices.odexsystemframeworkssltest.jarsystemframeworkssltest.odexsystemframeworksvc.jar 系统服务systemframeworksvc.odex systemliblib目录中存放的主要是系统底层库,如平台运行时库。systemliblibaes.so systemliblibagl.sosystemlibli

21、bandroid_runtime.so Android运行时库systemliblibandroid_servers.so 系统服务组件systemliblibaudio.so 音频处理systemliblibaudioeq.so EQ均衡器systemliblibaudioflinger.so 音频过滤器systemliblibbluetooth.so 蓝牙组件systemliblibc.sosystemliblibcamera.so 超相机组件systemliblibcameraservice.sosystemliblibcorecg.sosystemliblibcrypto.so 加密组

22、件systemliblibctest.sosystemliblibcutils.sosystemliblibdbus.sosystemliblibdl.sosystemliblibdrm1.so DRM解析库systemliblibdrm1_jni.sosystemliblibdvm.sosystemliblibexif.sosystemliblibexpat.sosystemliblibFFTEm.sosystemliblibGLES_CM.sosystemliblibgps.sosystemliblibhardware.sosystemliblibhgl.sosystemliblibhtc

23、_ril.sosystemliblibicudata.sosystemliblibicui18n.sosystemliblibicuuc.sosystemlibliblog.sosystemliblibm.sosystemliblibmedia.sosystemliblibmediaplayerservice.sosystemliblibmedia_jni.sosystemliblibnativehelper.sosystemliblibnetutils.sosystemliblibOmxCore.sosystemliblibOmxH264Dec.sosystemliblibpixelflin

24、ger.sosystemliblibpvasf.sosystemliblibpvasfreg.sosystemliblibpvauthor.sosystemliblibpvcommon.sosystemliblibpvdownload.sosystemliblibpvdownloadreg.sosystemliblibpvmp4.sosystemliblibpvmp4reg.sosystemliblibpvnet_support.sosystemliblibpvplayer.sosystemliblibpvrtsp.sosystemliblibpvrtspreg.sosystemliblibq

25、camera.sosystemliblibreference-ril.sosystemliblibril.sosystemliblibrpc.sosystemliblibsgl.sosystemliblibsonivox.sosystemliblibsoundpool.sosystemliblibsqlite.sosystemliblibssl.sosystemliblibstdc+.sosystemliblibsurfaceflinger.sosystemliblibsystem_server.sosystemliblibthread_db.sosystemliblibUAPI_jni.so

26、systemliblibui.sosystemliblibutils.sosystemliblibvorbisidec.sosystemliblibwbxml.sosystemliblibwbxml_jni.sosystemliblibwebcore.sosystemliblibwpa_client.sosystemliblibxml2wbxml.sosystemliblibz.sosystemlibmodulessystemlibmoduleswlan.kosystemmediapage_break 铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音systemmediaaudiosys

27、temmediaaudioalarms 闹铃音systemmediaaudionotifications 提示音systemmediaaudioringtones 铃声systemmediaaudioui 界面操作事件音systemmediaaudioalarmsAlarm_Beep_01.oggsystemmediaaudioalarmsAlarm_Beep_02.oggsystemmediaaudioalarmsAlarm_Beep_03.oggsystemmediaaudioalarmsAlarm_Buzzer.oggsystemmediaaudioalarmsAlarm_Classic

28、.oggsystemmediaaudioalarmsAlarm_Rooster_02.oggsystemmediaaudionotificationsBeat_Box_Android.oggsystemmediaaudionotificationsCaffeineSnake.oggsystemmediaaudionotificationsDearDeer.oggsystemmediaaudionotificationsDontPanic.oggsystemmediaaudionotificationsF1_MissedCall.oggsystemmediaaudionotificationsF

29、1_New_MMS.oggsystemmediaaudionotificationsF1_New_SMS.oggsystemmediaaudionotificationsHeaven.oggsystemmediaaudionotificationsHighwire.oggsystemmediaaudionotificationsKzurbSonar.oggsystemmediaaudionotificationsOnTheHunt.oggsystemmediaaudionotificationsTaDa.oggsystemmediaaudionotificationsTinkerbell.og

30、gsystemmediaaudionotificationsVoila.oggsystemmediaaudioringtonesBeatPlucker.oggsystemmediaaudioringtonesBentleyDubs.oggsystemmediaaudioringtonesBirdLoop.oggsystemmediaaudioringtonesCaribbeanIce.oggsystemmediaaudioringtonesCrazyDream.oggsystemmediaaudioringtonesCurveBall.oggsystemmediaaudioringtonesD

31、reamTheme.oggsystemmediaaudioringtonesEtherShake.oggsystemmediaaudioringtonesFriendlyGhost.oggsystemmediaaudioringtonesGameOverGuitar.oggsystemmediaaudioringtonesGrowl.oggsystemmediaaudioringtonesInsertCoin.oggsystemmediaaudioringtonesLoopyLounge.oggsystemmediaaudioringtonesLoveFlute.oggsystemmediaa

32、udioringtonesMidEvilJaunt.oggsystemmediaaudioringtonesMildlyAlarming.oggsystemmediaaudioringtonesNewPlayer.oggsystemmediaaudioringtonesNoises1.oggsystemmediaaudioringtonesNoises2.oggsystemmediaaudioringtonesNoises3.oggsystemmediaaudioringtonesOrganDub.oggsystemmediaaudioringtonesRing_Classic_02.oggs

33、ystemmediaaudioringtonesRing_Digital_02.oggsystemmediaaudioringtonesRing_Synth_02.oggsystemmediaaudioringtonesRing_Synth_04.oggsystemmediaaudioringtonesRomancingTheTone.oggsystemmediaaudioringtonesSitarVsSitar.oggsystemmediaaudioringtonesSpringyJalopy.oggsystemmediaaudioringtonesT-Jingle.oggsystemme

34、diaaudioringtonesTerminated.oggsystemmediaaudioringtonesTwirlAway.oggsystemmediaaudioringtonesVeryAlarmed.oggsystemmediaaudioringtonesWorld.oggsystemmediaaudiouiEffect_Tick.oggsystemsounds默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。systemsoundstest.midsystemusr用户文件夹,包含共享、键盘布局、时间区域文件等。systemusrkeycharssystemu

35、srkeylayoutsystemusrsharesystemusrsrecsystemusrkeycharsqwerty.kcm.binsystemusrkeycharsqwerty2.kcm.binsystemusrkeycharstrout-keypad-qwertz.kcm.binsystemusrkeycharstrout-keypad-v2.kcm.binsystemusrkeycharstrout-keypad-v3.kcm.binsystemusrkeycharstrout-keypad.kcm.binsystemusrkeylayouth2w_headset.klsystem

36、usrkeylayoutqwerty.klsystemusrkeylayouttrout-keypad-qwertz.klsystemusrkeylayouttrout-keypad-v2.klsystemusrkeylayouttrout-keypad-v3.klsystemusrkeylayouttrout-keypad.klsystemusrsharebsksystemusrsharezoneinfosystemusrsharebskV_FD_speed_101.bsksystemusrsharebskV_FD_std_101.bsksystemusrsharezoneinfozonei

37、nfo.datsystemusrsharezoneinfozoneinfo.idxsystemusrsrecconfigsystemusrsrecconfigen.ussystemusrsrecconfigen.usbaseline.parsystemusrsrecconfigen.usbaseline11k.parsystemusrsrecconfigen.usbaseline8k.parsystemusrsrecconfigen.usdictionarysystemusrsrecconfigen.usg2psystemusrsrecconfigen.usgrammarssystemusrs

38、recconfigen.usmodelssystemusrsrecconfigen.usdictionarybasic.oksystemusrsrecconfigen.usdictionarycmu6plus.ok.zipsystemusrsrecconfigen.usdictionaryenroll.oksystemusrsrecconfigen.usg2pen-US-ttp.datasystemusrsrecconfigen.usgrammarsVoiceDialer.g2gsystemusrsrecconfigen.usmodelsgeneric.swiarbsystemusrsrecc

39、onfigen.usmodelsgeneric11.ldasystemusrsrecconfigen.usmodelsgeneric11_f.swimdlsystemusrsrecconfigen.usmodelsgeneric11_m.swimdlsystemusrsrecconfigen.usmodelsgeneric8.ldasystemusrsrecconfigen.usmodelsgeneric8_f.swimdlsystemusrsrecconfigen.usmodelsgeneric8_m.swimdl整个Android平台的文件不止是这么多,部分文件在/data文件夹中都是用户

40、文件夹,这里就不介绍了。 Android Internal - system directories您應該已經知道,Android 的核心作業系統是 Linux (現在用的版本是 2.6.25)。因此內部的檔案系統,與系統目錄等,也和 Linux 脫不了關係。要如何觀察這些系統目錄,到底藏了什麼秘密呢?在 Eclipse 環境中,你可以用 DDMS 來觀察。不過這個 DDMS 在我的電腦上的執行速度,實在太慢了。我個人的偏好是,直接用 adb shell 來觀察。啟動 adb shell 的用法如下:1. 在 Windows 中,開啟一個命令列視窗 (或執行 cmd.exe 這個程式)2. c

41、d /tools3. adb shell當你看到這個 # 提示字元時,就表示你已經進入模擬器的系統。接下來,你就可以用 Linux 上的指令來瀏覽這些目錄。像是 cd, ls, pwd, cat, rm 等等。這裡面,有幾個目錄是和 Android 相關的,我特地將他整理下來,供你參考。/system/app 預載入應用程式執行檔 (*.apk),都是放在這。像是 Alarm Clock, Browser, Contacts, Maps,. 等等。用 DDMS 觀察的話,目錄內的內容,就像下面這樣:/system/framework 這會放 Android 系統的核心程式庫。像是 core.j

42、ar, framework-res.apk, com.google.android.gtalkservice.jar,.等等。疑,1.0r1 不是已經將 gtalk 等相關 APIs 移除了嗎?怎麼他的程式庫還在?雖然許多程式庫都是以 jar 結尾的,不過裡面 Java classes 還是以 dex 格式存在著。/system/media/audio/(notification, alarms, ringtones, ui) 這裡放系統的聲音檔,像是鬧鈴聲,來電鈴聲等等。這些聲音檔,多是 ogg 格式。/data/anr/traces.txt 當你的應用程式發生 ANR (Applicati

43、on is Not Responding) 錯誤時,Android 會自動將問題點的 code stack list 寫在這個檔案內,你直接用 cat 命令就可以看他的內容。/data/app /system/app 放的是系統預載的應用程式執行檔。而這裡放的是使用者自己安裝的應用程式執行檔 (*.apk)。/data/data/ 當你在程式中用 Context.openFileOutput() 所建立的檔案,都放在這個目錄下的 files 子目錄內。而用 Context.getSharedPreferences() 所建立的 preferences 檔 (*.xml) ,則是放在 share

44、d_pref 這個子目錄中。/data/location/gps 這裡看起來,應該是給 GPS location provider 用的。其中的 properties 檔案的內容如下:requiresNetwork falserequiresSatellite falserequiresCell falsehasMonetaryCost falsesupportsAltitude truesupportsBearing truesupportsSpeed truerepeat trueaccuracy 100powerRequirement 1沒猜錯的話,這應該是用來描述 GPS locati

45、on provider 有那些功能的。/data/system/location/location.gps 這個檔案也是個一般文字檔。主要是記錄最後的經緯度座標。LocationManager.getLastKnownLocation() 就在來這抓值的。/data/property/persist.sys.timezone 這個檔案也是個一般文字檔。主要是記錄目前系統所使用的時區。在我的模擬器上,他記錄著 Asia/Taipei 這個字串。最後,下面這兩個指令,也很好用。他可以幫你將外部檔案,複製到模擬器的系統檔案目錄內,也可以將模擬器內的檔案,複製到外部系統上。adb push - cop

46、y file/dir to deviceadb pull - copy file/dir from device Android是google公司针对手机开发的一个平台,并公布了其中大部分代码,其大部分应用程序都是用JAVA开发的,毕竟它是商业性的产品嘛,有所保留也是理所当然的。对于搞嵌入式linux开发的人来说我们可以从中学习其长处,也算得上是未来的一个发展方向和趋势吧。我们先来看看Android它的体系结构吧。下面是一张公开的Android体系结构图。attach8828322/attachandroid的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从

47、高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C+语言编写的程序库,红色的代码内核(linux内核+drvier)1.应用程序Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。2.应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其 它的应用程序都可以使用其所

48、发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括; * 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。 * 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据 * 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( l

49、ayout files )。 * 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 * 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。有关更多的细节和怎样从头写一个应用程序,请参考 如何编写一个 Android 应用程序.3.系统运行库1)程序库Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库: * Bionic系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库( l

50、ibc ), 它是专门为基于 embedded linux 的设备定制的。 * 媒体库 - 基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。 * Surface Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。这部分代码 * Webkit,LibWebCore - 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。鼎鼎大名的 Apple Safari背后的引擎就是We

51、bkit * SGL - 底层的2D图形引擎 * 3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。 * FreeType -位图(bitmap)和矢量(vector)字体显示。 * SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。 *还有部分上面没有显示出来的就是硬件抽象层。其实Android并非讲所有的设备驱动都放在linux内核里面,而是实现在userspace空间,这么做的主要原因是GPL协议,Linux是遵循该协议来发布的,也就意味着对 linux内核的任何修改,

52、都必须发布其源代码。而现在这么做就可以避开而无需发布其源代码,毕竟它是用来赚钱的。而在linux内核中为这些userspace驱动代码开一个后门,就可以让本来userspace驱动不可以直接控制的硬件可以被访问。而只需要公布这个后门代码即可。一般情况下如果要将Android移植到其他硬件去运行,只需要实现这部分代码即可。包括:显示器驱动,声音,相机,GPS,GSM等等2)Android 运行库Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟 机实例。Dalvik被设计成一个设

53、备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了 优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 dx 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。4.Linux 内核Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。其外还对其做了部分修改,主要涉及两部分修改:1).Binder (IP

54、C):提供有效的进程间通信,虽然linux内核本身已经提供了这些功能,但Android系统很多服务都需要用到该功能,为了某种原因其实现了自己的一套。2).电源管理:主要是为了省电,毕竟是手持设备嘛,低耗电才是我们的追求。最后在谈谈Android所采用的语言,其应用开发采用java语言,我们所说的java一般包含三个部分:1)java语言:即其语法,其写代码的程式2).java虚拟机:为了实现一次编译到处可以运行的原则,java在编译连接以后并没有产生目标机器语言,而是采用了Java bytecode这种Java共用指令,这时就需要一个虚拟机来执行改指令。3).库:跟我们常用的C语言一样提供一些

55、常用的库后两者结合就是Java Runtime Environment。Android使用的虚拟机叫 Dalvik,最初并是不为Java设计的,它并不能运行Java bytecode指令,而是运行叫Dalvik executable,简称dx。为此Android提供了dx工具,用来将Java bytecode转换为dx。Android源代码结构:Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:.|- Makefile (全局的Makefile)|- bionic (Bionic含义为仿生,这里面是一

56、些基础的库的源代码)|- bootloader (引导加载器)|- build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)|- dalvik (JAVA虚拟机)|- development (程序开发所需要的模板和工具)|- external (目标机器使用的一些库)|- frameworks (应用程序的框架层)|- hardware (与硬件相关的库)|- kernel (Linux2.6的源代码)|- packages (Android的各种应用程序)|- prebuilt (Android在各种平台下编译的预置脚本)|- recovery (与目标的

57、恢复功能相关)- system (Android的底层的一些库)bionic目录展开一个级别的目录如下所示:bionic/|- Android.mk|- libc|- libdl|- libm|- libstdc+|- libthread_db- linkerbootloader目录展开的两个级别目录:bootloader/- legacy |- Android.mk |- README |- arch_armv6 |- arch_msm7k |- fastboot_protocol.txt |- include |- libboot |- libc |- nandwrite - usbloaderbuild目录展开的一个级别的目录如下所示:build/|- buildspec.mk.default|- cleanspec.mk|- core (各种以mk为结尾的文件,它门是编译所需要的Makefile)|- envsetup.sh

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!