Android Framework中的Application Framework層介紹

  Android的四層架構相比大家都很清楚,老生常談的說一下分別為:

  Linux2.6內核層,核心庫層,應用框架層,應用層。我今天重點介紹一下應用框架層Framework。

????????Framework層為我們開發應用程序提供了非常多的API,我們通過調用特殊的API構造我們的APP,滿足我們業務上的需求。寫APP的人都知道,學習Android開發的第一步就是去學習各種各樣的API,什么Activity,Service,Notification等。這些都是framework提供給我們的,那么我就詳細的講講Framework到底在整個Android架構中扮演著什么角色。

?Framework功能

? ? ? ? ?Framework其實可以簡單的理解為一些API的庫房,android開發人員將一些基本功能實現,通過接口提供給上層調用,可以重復的調用

???????? 我們可以稱Framework層才真正是Java語言實現的層,在這層里定義的API都是用Java語言編寫。但是又因為它包含了JNI的方法,JNI用C/C++編寫接口,根據函數表查詢調用核心庫層里的底層方法,最終訪問到Linux內核。那么Framework層的作用就有2個。

1.用Java語言編寫一些規范化的模塊封裝成框架,供APP層開發者調用開發出具有特殊業務的手機應用。

2.用Java Native Interface調用core lib層的本地方法,JNI的庫是在Dalvik虛擬機啟動時加載進去的,Dalvik會直接去尋址這個JNI方法,然后去調用。

??????? 2種方式的結合達到了Java方法和操作系統的相互通信。Android為什么要用Java編寫Framework層呢?直接用C或C++不是更好?有關專家給出了如下解釋:

????? C/C++過于底層,開發者要花很多的經歷對C/C++的語言研究清楚,例如C/C++的內存機制,如果稍不注意,就會忘了開啟或者釋放。而Java的GC會自動處理這些,省去了很多的時間讓開發者專注于自己的業務。所以才會從C/C++的底層慢慢向上變成了JAVA的開發語言,該層通過JNI和核心運行庫層進行交互。

??????? ?其實這些也是Java能發展這么迅速的原因,面對對象語言的優勢。不用太關注內存,放心大膽的去做實現,才有時間去創造新的事物。

Framework API

?

Activity Manager

?

用來管理應用程序生命周期并提供常用的導航回退功能。

?

Window Manager

?

提供一些我們訪問手機屏幕的方法。屏幕的透明度、亮度、背景。

?

Content Providers

?

使得應用程序可以訪問另一個應用程序的數據(如聯系人數據庫), 或者共享它們自己的數據。

?

View System

?

可以用來構建應用程序, 它包括列表(Lists),網格(Grids),文本框(Text boxes),按鈕(Buttons), 甚至可嵌入的web瀏覽器。

?

Notification Manager

?

使得應用程序可以在狀態欄中顯示自定義的提示信息。

?

Package Manager

?

提供對系統的安裝包的訪問。包括安裝、卸載應用,查詢permission相關信息,查詢Application相關信息等。

?

Telephony Manager

?

主要提供了一系列用于訪問與手機通訊相關的狀態和信息的方法,查詢電信網絡狀態信息,sim卡的信息等。

?

Resource Manager

?

提供非代碼資源的訪問,如本地字符串,圖形,和布局文件(Layout files )。

?

Location Manager

?

提供設備的地址位置的獲取方式。很顯然,GPS導航肯定能用到位置服務。

?

XMPP

?

可擴展通訊和表示協議。前身為Jabber,提供即時通信服務。例如推送功能,Google Talk。
每一層的介紹如下:?

應用程序層(JAVA應用程序):

??該層提供一些核心應用程序包,例如電子郵件、短信、日歷、地圖、瀏覽器和聯系人管理等。同時,開發者可以利用Java語言設計和編寫屬于自己的應用程序,而這些程序與那些核心應用程序彼此平等、友好共處。

?

應用程序框架層(JAVA框架):

??該層是Android應用開發的基礎,開發人員大部分情況是在和她打交道。應用程序框架層包括活動管理器、窗口管理器、內容提供者、視圖系統、包管理器、電話管理器、資源管理器、位置管理器、通知管理器和XMPP服務十個部分。在Android平臺上,開發人員可以完全訪問核心應用程序所使用的API框架。并且,任何一個應用程序都可以發布自身的功能模塊,而其他應用程序則可以使用這些已發布的功能模塊。基于這樣的重用機制,用戶就可以方便地替換平臺本身的各種應用程序組件。

?

系統庫和android運行時層(本地框架和JAVA運行環境):

??系統庫包括九個子系統,分別是圖層管理、媒體庫、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。

? Android運行時包括核心庫和Dalvik虛擬機,前者既兼容了大多數Java語言所需要調用的功能函數,又包括了Android的核心庫,比如android.os、android.net、android.media等等。后者是一種基于寄存器的java虛擬機,Dalvik虛擬機主要是完成對生命周期的管理、堆棧的管理、線程的管理、安全和異常的管理以及垃圾回收等重要功能。

?

LINUX內核層:

??Android核心系統服務依賴于Linux內核,如安全性、內存管理、進程管理、網絡協議棧和驅動模型。Linux內核也是作為硬件與軟件棧的抽象層。

? 驅動:顯示驅動、攝像頭驅動、鍵盤驅動、WiFi驅動、Audio驅動、flash內存驅動、Binder(IPC)驅動、電源管理等。

?

2. android源碼目錄結構:

?

[plain]?view plain?copy
  1. Android?5.1??
  2. |--?Makefile??
  3. |--?abi??
  4. |--?art??
  5. |--?bionic?(bionic?C庫)??
  6. |--?bootable?(啟動引導相關代碼)??
  7. |--?build?(存放系統編譯規則及generic等基礎開發包配置)??
  8. |--?cts?(Android兼容性測試套件標準)??
  9. |--?dalvik?(dalvik?JAVA虛擬機)??
  10. |--?developers??
  11. |--?development?(應用程序開發相關)??
  12. |--?device??
  13. |--?docs??
  14. |--?external?(android使用的一些開源的模組)??
  15. |--?frameworks?(核心框架——java及C++語言)??
  16. |--?hardware?(部分廠家開源的硬解適配層HAL代碼)??
  17. |--?kernel??
  18. |--?libcore??
  19. |--?libnativehelper??
  20. |--?ndk??
  21. |--?out?(編譯完成后的代碼輸出與此目錄)??
  22. |--?packages?(應用程序包)??
  23. |--?pdk??
  24. |--?prebuilts?(x86和arm架構下預編譯的一些資源)??
  25. |--?sdk?(sdk及模擬器)??
  26. |--?system?(底層文件系統庫、應用及組件——C語言)??
  27. |--?tools??
  28. `--?vendor?(廠商定制代碼)??
  29. ??
  30. bionic?目錄??
  31. |--?benchmarks??
  32. |--?libc?(C庫)??
  33. |?|--?arch-arm?(ARM架構,包含系統調用匯編實現)??
  34. |?|--?...??
  35. |?|--?bionic?(由C實現的功能,架構無關)??
  36. |?|--?dns??
  37. |?|--?include?(頭文件)??
  38. |?|--?kernel?(Linux內核中的一些頭文件)??
  39. |?|--?private?(?一些私有的頭文件)??
  40. |?|--?stdio?(stdio實現)??
  41. |?|--?tools?(幾個工具)??
  42. |?|--?tzcode?(時區相關代碼)??
  43. |?|--?upstream-dlmalloc??
  44. |?|--?upstream-freebsd??
  45. |?|--?upstream-netbsd??
  46. |?|--?upstream-openbsd??
  47. |?`--?zoneinfo?(時區信息)??
  48. |--?libdl?(libdl實現,dl是動態鏈接,提供訪問動態鏈接庫的功能)??
  49. |--?libm?(libm數學庫的實現,)??
  50. |--?libstdc++?(libstdc++?C++實現庫)??
  51. |--?linker?(動態鏈接器)??
  52. `--?test??
  53. ??
  54. bootable?目錄??
  55. |--?bootloader?(適合各種bootloader的通用代碼)??
  56. |?|--?legacy?(估計不能直接使用,可以參考)??
  57. |?`--?lk??
  58. `--?recovery?(系統恢復相關)??
  59. |?|--?edify?(升級腳本使用的edify腳本語言)??
  60. |?|--?etc?(init.rc恢復腳本)??
  61. |?|--?minui?(一個簡單的UI)??
  62. |?|--?minzip?(一個簡單的壓縮工具)??
  63. |?|--?mtdutils?(mtd工具)??
  64. |?|--?res?(資源)??
  65. |?|--?tools?(工具)??
  66. |?|?`--?ota?(OTA?Over?The?Air?Updates升級工具)??
  67. |?`--?updater?(升級器)??
  68. ??
  69. build目錄??
  70. |--?core?(核心編譯規則)??
  71. |--?libs???
  72. |?`--?host?(主機端庫,有android?“cp”功能替換)??
  73. |--?target?(目標機編譯對象)??
  74. |?|--?board?(開發平臺)??
  75. |?|--?product?(開發平臺對應的編譯規則)??
  76. `--?tools?(編譯中主機使用的工具及腳本)??
  77. ??
  78. ??
  79. dalvik目錄?dalvik虛擬機??
  80. |--?dexdump?(dex反匯編)??
  81. |--?dexgen??
  82. |--?dexlist?(List?all?methods?in?all?concrete?classes?in?a?DEX?file.)??
  83. |--?docs?(文檔)??
  84. |--?dx?(dx工具,將多個java轉換為dex)??
  85. |--?hit?(?java語言寫成)??
  86. |--?opcode-gen??
  87. |--?tools?(工具)??
  88. `--?vm?(虛擬機實現)??
  89. ??
  90. development?目錄?(開發者需要的一些例程及工具)??
  91. |--?apps?(一些核心應用程序)??
  92. |?|--?BluetoothDebug?(藍牙調試程序)??
  93. |?|--?CustomLocale?(自定義區域設置)??
  94. |?|--?Development?(開發)??
  95. |?|--?Fallback?(和語言相關的一個程序)??
  96. |?|--?FontLab?(字庫)??
  97. |?|--?GestureBuilder?(手勢動作)??
  98. |?|--?NinePatchLab?(?)??
  99. |?|--?OBJViewer?(OBJ查看器)??
  100. |?|--?SdkSetup?(SDK安裝器)??
  101. |?|--?SpareParts?(高級設置)??
  102. |?|--?Term?(遠程登錄)??
  103. |?`--?launchperf?(?)??
  104. |--?build?(編譯腳本模板)??
  105. |--?cmds?(有個monkey工具)??
  106. |--?docs?(文檔)??
  107. |--?host?(主機端USB驅動等)??
  108. |--?ide?(集成開發環境)??
  109. |--?libraries??
  110. |--?ndk?(本地開發套件——c語言開發套件)??
  111. |--?samples?(例程)??
  112. |?|--?AliasActivity?(?)??
  113. |?|--?ApiDemos?(API演示程序)??
  114. |?|--?BluetoothChat?(藍牙聊天)??
  115. |?|--?BrowserPlugin?(瀏覽器插件)??
  116. |?|--?BusinessCard?(商業卡)??
  117. |?|--?Compass?(指南針)??
  118. |?|--?ContactManager?(聯系人管理器)??
  119. |?|--?CubeLiveWallpaper?(動態壁紙的一個簡單例程)??
  120. |?|--?FixedGridLayout?(像是布局)??
  121. |?|--?GlobalTime?(全球時間)??
  122. |?|--?HelloActivity?(Hello)??
  123. |?|--?Home?(Home)??
  124. |?|--?JetBoy?(jetBoy游戲)??
  125. |?|--?LunarLander?(貌似又是一個游戲)??
  126. |?|--?MailSync?(郵件同步)??
  127. |?|--?MultiResolution?(多分辨率)??
  128. |?|--?MySampleRss?(RSS)??
  129. |?|--?NotePad?(記事本)??
  130. |?|--?RSSReader?(RSS閱讀器)??
  131. |?|--?SearchableDictionary?(目錄搜索)??
  132. |?|--?SimpleJNI?(JNI例程)??
  133. |?|--?SkeletonApp?(空殼APP)??
  134. |?|--?Snake?(snake程序)??
  135. |?|--?SoftKeyboard?(軟鍵盤)??
  136. |?|--?Wiktionary?(?維基)??
  137. |?`--?WiktionarySimple(?維基例程)??
  138. |--?scripts?(腳本)??
  139. |--?sdk?(sdk配置)??
  140. |--?sdk_overlay??
  141. |--?sys-img??
  142. |--?testrunner?(?測試用)??
  143. |--?tools?(一些工具)??
  144. `--?tutorials??
  145. ??
  146. external?目錄??
  147. |--?apache-http?(網頁服務器)??
  148. |--?bison?(自動生成語法分析器,將無關文法轉換成C、C++)??
  149. |--?blktrace?(blktrace?is?a?block?layer?IO?tracing?mechanism)??
  150. |--?bluetooth?(藍牙相關、協議棧)??
  151. |--?bsdiff?(diff工具)??
  152. |--?bzip2?(壓縮工具)??
  153. |--?dhcpcd?(DHCP服務)??
  154. |--?e2fsprogs?(EXT2文件系統工具)??
  155. |--?elfcopy?(復制ELF的工具)??
  156. |--?elfutils?(ELF工具)??
  157. |--?embunit?(Embedded?Unit?Project)??
  158. |--?emma?(java代碼覆蓋率統計工具)??
  159. |--?esd?(Enlightened?Sound?Daemon,將多種音頻流混合在一個設備上播放)??
  160. |--?expat?(Expat?is?a?stream-oriented?XML?parser.)??
  161. |--?fdlibm?(FDLIBM?(Freely?Distributable?LIBM))??

詳細目錄介紹:

\system\app?
這個里面主要存放的是常規下載的應用程序,可以看到都是以APK格式結尾的文件。在這個文件夾下的程序為系統默認的組件,自己安裝的軟件將不會出現在這里,而是\data\文件夾中。下面是詳細的介紹:
\system\app\AlarmClock.apk 鬧鐘
\system\app\AlarmClock.odex
\system\app\Browser.apk 瀏覽器
\system\app\Browser.odex
\system\app\Bugreport.apk Bug報告
\system\app\Bugreport.odex
\system\app\Calculator.apk 計算器
\system\app\Calculator.odex
\system\app\Calendar.apk 日歷
\system\app\Calendar.odex
\system\app\CalendarProvider.apk 日歷提供
\system\app\CalendarProvider.odex
\system\app\Camera.apk 照相機
\system\app\Camera.odex
\system\app\com.amazon.mp3.apk 亞馬遜音樂
\system\app\Contacts.apk 聯系人
\system\app\Contacts.odex
\system\app\DownloadProvider.apk 下載提供
\system\app\DownloadProvider.odex
\system\app\DrmProvider.apk DRM數字版權提供
\system\app\DrmProvider.odex
\system\app\Email.apk 電子郵件客戶端
\system\app\Email.odex
\system\app\FieldTest.apk 測試程序
\system\app\FieldTest.odex
\system\app\GDataFeedsProvider.apk GoogleData提供
\system\app\GDataFeedsProvider.odex
\system\app\Gmail.apk Gmail電子郵件
\system\app\Gmail.odex
\system\app\GmailProvider.apk Gmail提供
\system\app\GmailProvider.odex
\system\app\GoogleApps.apk 谷歌程序包
\system\app\GoogleApps.odex
\system\app\GoogleSearch.apk 搜索工具
\system\app\GoogleSearch.odex
\system\app\gtalkservice.apk GTalk服務
\system\app\gtalkservice.odex
\system\app\HTMLViewer.apk HTML查看器
\system\app\HTMLViewer.odex
\system\app\IM.apk 即使通訊組件包含MSN、yahoo通
\system\app\ImCredentialProvider.apk
\system\app\ImProvider.apk
\system\app\ImProvider.odex
\system\app\Launcher.apk 啟動加載器
\system\app\Launcher.odex
\system\app\Maps.apk 電子地圖
\system\app\Maps.odex
\system\app\MediaProvider.apk 多媒體播放提供
\system\app\MediaProvider.odex
\system\app\Mms.apk 短信、彩信
\system\app\Mms.odex
\system\app\Music.apk 音樂播放器
\system\app\Music.odex
\system\app\MyFaves.apk T-Mobile MyFaves程序
\system\app\MyFaves.odex
\system\app\PackageInstaller.apk apk安裝程序
\system\app\PackageInstaller.odex
\system\app\Phone.apk 電話撥號器
\system\app\Phone.odex
\system\app\Settings.apk 系統設置
\system\app\Settings.odex
\system\app\SettingsProvider.apk 設置提供
\system\app\SettingsProvider.odex
\system\app\SetupWizard.apk 設置向導
\system\app\SetupWizard.odex
\system\app\SoundRecorder.apk 錄音工具
\system\app\SoundRecorder.odex
\system\app\Street.apk 街景地圖
\system\app\Street.odex
\system\app\Sync.apk 同步程序
\system\app\Sync.odex
\system\app\Talk.apk 語音程序
\system\app\Talk.odex
\system\app\TelephonyProvider.apk 電話提供
\system\app\TelephonyProvider.odex
\system\app\Updater.apk 更新程序
\system\app\Updater.odex
\system\app\Vending.apk 制造商信息
\system\app\Vending.odex
\system\app\VoiceDialer.apk 語音撥號器
\system\app\VoiceDialer.odex
\system\app\YouTube.apk Youtube視頻
\system\app\YouTube.odex

?

?

\system\bin
這個目錄下的文件都是系統的本地程序,從bin文件夾名稱可以看出是binary二進制的程序,里面主要是Linux系統自帶的組件,
主要文件簡單的分析介紹:
\system\bin\akmd
\system\bin\am
\system\bin\app_process 系統進程
\system\bin\dalvikvm Dalvik虛擬機宿主
\system\bin\dbus-daemon 系統BUS總線監控
\system\bin\debuggerd 調試器
\system\bin\debug_tool 調試工具
\system\bin\dexopt DEX選項
\system\bin\dhcpcd DHCP服務器
\system\bin\dumpstate 狀態抓取器
\system\bin\dumpsys 系統抓取器
\system\bin\dvz
\system\bin\fillup
\system\bin\flash_image 閃存映像
\system\bin\hciattach
\system\bin\hcid HCID內核
\system\bin\hostapd
\system\bin\hostapd_cli
\system\bin\htclogkernel
\system\bin\input
\system\bin\installd
\system\bin\itr
\system\bin\linker
\system\bin\logcat Logcat日志打印
\system\bin\logwrapper
\system\bin\mediaserver
\system\bin\monkey
\system\bin\mountd 存儲掛載器
\system\bin\netcfg 網絡設置
\system\bin\ping Ping程序
\system\bin\playmp3 MP3播放器
\system\bin\pm 包管理器
\system\bin\qemud QEMU虛擬機
\system\bin\radiooptions 無線選項
\system\bin\rild RIL組件
\system\bin\sdptool
\system\bin\sdutil
\system\bin\service?
\system\bin\servicemanager 服務管理器
\system\bin\sh
\system\bin\ssltest SSL測試
\system\bin\surfaceflinger 觸摸感應驅動
\system\bin\svc 服務
\system\bin\system_server
\system\bin\telnetd Telnet組件
\system\bin\toolbox
\system\bin\wlan_loader
\system\bin\wpa_cli
\system\bin\wpa_supplicant

?


\system\etc
從文件夾名稱來看保存的都是系統的配置文件,比如APN接入點設置等核心配置。

\system\etc\apns-conf.xml APN接入點配置文件
\system\etc\AudioFilter.csv 音頻過濾器配置文件
\system\etc\AudioPara4.csv
\system\etc\bookmarks.xml 書簽數據庫
\system\etc\dbus.conf 總線監視配置文件
\system\etc\dhcpcd
\system\etc\event-log-tags
\system\etc\favorites.xml 收藏夾
\system\etc\firmware 固件信息
\system\etc\gps.conf GPS設置文件
\system\etc\hcid.conf??內核HCID配置文件
\system\etc\hosts 網絡DNS緩存
\system\etc\init.goldfish.sh
\system\etc\location 定位相關
\system\etc\mountd.conf 存儲掛載配置文件
\system\etc\NOTICE.html 提示網頁
\system\etc\permissions.xml 權限許可
\system\etc\pvplayer.conf?
\system\etc\security?
\system\etc\wifi WLAN相關組件
\system\etc\dhcpcd\dhcpcd-hooks
\system\etc\dhcpcd\dhcpcd-run-hooks
\system\etc\dhcpcd\dhcpcd.conf
\system\etc\dhcpcd\dhcpcd-hooks\01-test
\system\etc\dhcpcd\dhcpcd-hooks\20-dns.conf
\system\etc\dhcpcd\dhcpcd-hooks\95-configured
\system\etc\firmware\brf6300.bin
\system\etc\location\gps
[page_break]?
\system\etc\location\gps\location 定位相關
\system\etc\location\gps\nmea GPS數據解析
\system\etc\location\gps\properties
\system\etc\security\cacerts.bks
\system\etc\security\otacerts.zip OTA下載驗證
\system\etc\wifi\Fw1251r1c.bin
\system\etc\wifi\tiwlan.ini
\system\etc\wifi\wpa_supplicant.conf WPA驗證組件

?


\system\fonts
字體文件夾,除了標準字體和粗體、斜體外可以看到文件體積最大的可能是中文字庫,或一些unicode字庫,
從T-Mobile G1上可以清楚的看到顯示簡體中文正常,其中DroidSansFallback.ttf文件大小
\system\fonts\DroidSans-Bold.ttf
\system\fonts\DroidSans.ttf
\system\fonts\DroidSansFallback.ttf
\system\fonts\DroidSansMono.ttf
\system\fonts\DroidSerif-Bold.ttf
\system\fonts\DroidSerif-BoldItalic.ttf
\system\fonts\DroidSerif-Italic.ttf
\system\fonts\DroidSerif-Regular.ttf
\system\framework
framework主要是一些核心的文件,從后綴名為jar可以看出是是系統平臺框架。
\system\framework\am.jar
\system\framework\am.odex
\system\framework\android.awt.jar AWT庫
\system\framework\android.awt.odex
\system\framework\android.policy.jar?
\system\framework\android.policy.odex
\system\framework\android.test.runner.jar
\system\framework\android.test.runner.odex
\system\framework\com.google.android.gtalkservice.jar GTalk服務
\system\framework\com.google.android.gtalkservice.odex
\system\framework\com.google.android.maps.jar 電子地圖庫
\system\framework\com.google.android.maps.odex
\system\framework\core.jar 核心庫,啟動桌面時首先加載這個
\system\framework\core.odex
\system\framework\ext.jar
\system\framework\ext.odex
\system\framework\framework-res.apk
\system\framework\framework-tests.jar
\system\framework\framework-tests.odex
\system\framework\framework.jar
\system\framework\framework.odex
\system\framework\input.jar 輸入庫
\system\framework\input.odex
\system\framework\itr.jar
\system\framework\itr.odex
\system\framework\monkey.jar
\system\framework\monkey.odex
\system\framework\pm.jar 包管理庫
\system\framework\pm.odex
\system\framework\services.jar
\system\framework\services.odex
\system\framework\ssltest.jar
\system\framework\ssltest.odex
\system\framework\svc.jar 系統服務
\system\framework\svc.odex

\system\lib

lib目錄中存放的主要是系統底層庫,如平臺運行時庫。
\system\lib\libaes.so?
\system\lib\libagl.so
\system\lib\libandroid_runtime.so Android運行時庫
\system\lib\libandroid_servers.so 系統服務組件
\system\lib\libaudio.so 音頻處理
\system\lib\libaudioeq.so EQ均衡器
\system\lib\libaudioflinger.so 音頻過濾器
\system\lib\libbluetooth.so 藍牙組件
\system\lib\libc.so
\system\lib\libcamera.so 超相機組件
\system\lib\libcameraservice.so
\system\lib\libcorecg.so
\system\lib\libcrypto.so 加密組件
\system\lib\libctest.so
\system\lib\libcutils.so
\system\lib\libdbus.so
\system\lib\libdl.so
\system\lib\libdrm1.so DRM解析庫
\system\lib\libdrm1_jni.so
\system\lib\libdvm.so
\system\lib\libexif.so
\system\lib\libexpat.so
\system\lib\libFFTEm.so
\system\lib\libGLES_CM.so
\system\lib\libgps.so
\system\lib\libhardware.so
\system\lib\libhgl.so
\system\lib\libhtc_ril.so
\system\lib\libicudata.so
\system\lib\libicui18n.so
\system\lib\libicuuc.so
\system\lib\liblog.so
\system\lib\libm.so
\system\lib\libmedia.so
\system\lib\libmediaplayerservice.so
\system\lib\libmedia_jni.so
\system\lib\libnativehelper.so
\system\lib\libnetutils.so
\system\lib\libOmxCore.so
\system\lib\libOmxH264Dec.so
\system\lib\libpixelflinger.so
\system\lib\libpvasf.so
\system\lib\libpvasfreg.so
\system\lib\libpvauthor.so
\system\lib\libpvcommon.so
\system\lib\libpvdownload.so
\system\lib\libpvdownloadreg.so
\system\lib\libpvmp4.so
\system\lib\libpvmp4reg.so
\system\lib\libpvnet_support.so
\system\lib\libpvplayer.so
\system\lib\libpvrtsp.so
\system\lib\libpvrtspreg.so
\system\lib\libqcamera.so
\system\lib\libreference-ril.so
\system\lib\libril.so
\system\lib\librpc.so
\system\lib\libsgl.so
\system\lib\libsonivox.so
\system\lib\libsoundpool.so
\system\lib\libsqlite.so
\system\lib\libssl.so
\system\lib\libstdc++.so
\system\lib\libsurfaceflinger.so
\system\lib\libsystem_server.so
\system\lib\libthread_db.so
\system\lib\libUAPI_jni.so
\system\lib\libui.so
\system\lib\libutils.so
\system\lib\libvorbisidec.so
\system\lib\libwbxml.so
\system\lib\libwbxml_jni.so
\system\lib\libwebcore.so
\system\lib\libwpa_client.so
\system\lib\libxml2wbxml.so
\system\lib\libz.so
\system\lib\modules
\system\lib\modules\wlan.ko

?


\system\media
鈴聲音樂文件夾,除了常規的鈴聲外還有一些系統提示事件音

\system\media\audio
\system\media\audio\alarms 鬧鈴音
\system\media\audio\notifications 提示音
\system\media\audio\ringtones 鈴聲
\system\media\audio\ui 界面操作事件音
\system\media\audio\alarms\Alarm_Beep_01.ogg
\system\media\audio\alarms\Alarm_Beep_02.ogg
\system\media\audio\alarms\Alarm_Beep_03.ogg
\system\media\audio\alarms\Alarm_Buzzer.ogg
\system\media\audio\alarms\Alarm_Classic.ogg
\system\media\audio\alarms\Alarm_Rooster_02.ogg
\system\media\audio\notifications\Beat_Box_Android.ogg
\system\media\audio\notifications\CaffeineSnake.ogg
\system\media\audio\notifications\DearDeer.ogg
\system\media\audio\notifications\DontPanic.ogg
\system\media\audio\notifications\F1_MissedCall.ogg
\system\media\audio\notifications\F1_New_MMS.ogg
\system\media\audio\notifications\F1_New_SMS.ogg
\system\media\audio\notifications\Heaven.ogg
\system\media\audio\notifications\Highwire.ogg
\system\media\audio\notifications\KzurbSonar.ogg
\system\media\audio\notifications\OnTheHunt.ogg
\system\media\audio\notifications\TaDa.ogg
\system\media\audio\notifications\Tinkerbell.ogg
\system\media\audio\notifications\Voila.ogg
\system\media\audio\ringtones\BeatPlucker.ogg
\system\media\audio\ringtones\BentleyDubs.ogg
\system\media\audio\ringtones\BirdLoop.ogg
\system\media\audio\ringtones\CaribbeanIce.ogg
\system\media\audio\ringtones\CrazyDream.ogg
\system\media\audio\ringtones\CurveBall.ogg
\system\media\audio\ringtones\DreamTheme.ogg
\system\media\audio\ringtones\EtherShake.ogg
\system\media\audio\ringtones\FriendlyGhost.ogg
\system\media\audio\ringtones\GameOverGuitar.ogg
\system\media\audio\ringtones\Growl.ogg
\system\media\audio\ringtones\InsertCoin.ogg
\system\media\audio\ringtones\LoopyLounge.ogg
\system\media\audio\ringtones\LoveFlute.ogg
\system\media\audio\ringtones\MidEvilJaunt.ogg
\system\media\audio\ringtones\MildlyAlarming.ogg
\system\media\audio\ringtones\NewPlayer.ogg
\system\media\audio\ringtones\Noises1.ogg
\system\media\audio\ringtones\Noises2.ogg
\system\media\audio\ringtones\Noises3.ogg
\system\media\audio\ringtones\OrganDub.ogg
\system\media\audio\ringtones\Ring_Classic_02.ogg
\system\media\audio\ringtones\Ring_Digital_02.ogg
\system\media\audio\ringtones\Ring_Synth_02.ogg
\system\media\audio\ringtones\Ring_Synth_04.ogg
\system\media\audio\ringtones\RomancingTheTone.ogg
\system\media\audio\ringtones\SitarVsSitar.ogg
\system\media\audio\ringtones\SpringyJalopy.ogg
\system\media\audio\ringtones\T-Jingle.ogg
\system\media\audio\ringtones\Terminated.ogg
\system\media\audio\ringtones\TwirlAway.ogg
\system\media\audio\ringtones\VeryAlarmed.ogg
\system\media\audio\ringtones\World.ogg
\system\media\audio\ui\Effect_Tick.ogg

?


\system\sounds
默認的音樂測試文件,僅有一個test.mid文件,用于播放測試的文件。

\system\sounds\test.mid

?


\system\usr
用戶文件夾,包含共享、鍵盤布局、時間區域文件等。

\system\usr\keychars
\system\usr\keylayout
\system\usr\share
\system\usr\srec
\system\usr\keychars\qwerty.kcm.bin
\system\usr\keychars\qwerty2.kcm.bin
\system\usr\keychars\trout-keypad-qwertz.kcm.bin
\system\usr\keychars\trout-keypad-v2.kcm.bin
\system\usr\keychars\trout-keypad-v3.kcm.bin
\system\usr\keychars\trout-keypad.kcm.bin
\system\usr\keylayout\h2w_headset.kl
\system\usr\keylayout\qwerty.kl
\system\usr\keylayout\trout-keypad-qwertz.kl
\system\usr\keylayout\trout-keypad-v2.kl
\system\usr\keylayout\trout-keypad-v3.kl
\system\usr\keylayout\trout-keypad.kl
\system\usr\share\bsk
\system\usr\share\zoneinfo
\system\usr\share\bsk\V_FD_speed_101.bsk
\system\usr\share\bsk\V_FD_std_101.bsk
\system\usr\share\zoneinfo\zoneinfo.dat
\system\usr\share\zoneinfo\zoneinfo.idx
\system\usr\srec\config
\system\usr\srec\config\en.us
\system\usr\srec\config\en.us\baseline.par
\system\usr\srec\config\en.us\baseline11k.par
\system\usr\srec\config\en.us\baseline8k.par
\system\usr\srec\config\en.us\dictionary
\system\usr\srec\config\en.us\g2p
\system\usr\srec\config\en.us\grammars
\system\usr\srec\config\en.us\models
\system\usr\srec\config\en.us\dictionary\basic.ok
\system\usr\srec\config\en.us\dictionary\cmu6plus.ok.zip
\system\usr\srec\config\en.us\dictionary\enroll.ok
\system\usr\srec\config\en.us\g2p\en-US-ttp.data
\system\usr\srec\config\en.us\grammars\VoiceDialer.g2g
\system\usr\srec\config\en.us\models\generic.swiarb
\system\usr\srec\config\en.us\models\generic11.lda
\system\usr\srec\config\en.us\models\generic11_f.swimdl
\system\usr\srec\config\en.us\models\generic11_m.swimdl
\system\usr\srec\config\en.us\models\generic8.lda
\system\usr\srec\config\en.us\models\generic8_f.swimdl
\system\usr\srec\config\en.us\models\generic8_m.swimdl


整個Android平臺的文件不止是這么多,部分文件在/data文件夾中都是用戶文件夾,這里就不介紹了。

?

/system/framework?
這會放 Android 系統的核心程式庫。
像是 core.jar, framework-res.apk, com.google.android.gtalkservice.jar,...等等。疑,1.0r1 不是已經將 gtalk 等相關 APIs 移除了嗎?怎麼他的程式庫還在?雖然許多程式庫都是以 jar 結尾的,不過裡面?Java?classes 還是以 dex 格式存在著。


/system/app 放的是系統預載的應用程式執行檔。而這裡放的是使用者自己安裝的應用程式執行檔 (*.apk)。/data/data/<app-package-name>?
當你在程式中用 Context.openFileOutput() 所建立的檔案,都放在這個目錄下的 files 子目錄內。而用 Context.getSharedPreferences() 所建立的 preferences 檔 (*.xml) ,則是放在 shared_pref 這個子目錄中。/data/location/gps?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540368.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540368.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540368.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[轉載] java注釋

參考鏈接&#xff1a; Java注釋 Java注釋 java中注釋有三種&#xff1a;這些都稱之為java doc標記&#xff0c;含義如下&#xff1a; java中注釋有三種&#xff1a; 單行注釋 //注釋的內容&#xff0c;多行注釋 /…注釋的內容…/&#xff0c;文檔注釋 /**…注釋的內容….*/。…

環路是怎樣形成的實例

環路是怎樣形成的一個由十多臺交換機組成的小型局域網&#xff0c;交換機大多是Cisco的中低端系列產品。某日突然出現問題&#xff1a;局域網內的主機之間相互ping時&#xff0c;都出現延時長、丟包現象&#xff0c;網絡應用奇慢無比。 觀察交換機設備&#xff0c;指示燈看不出…

[轉載] 《Python語言程序設計》課程筆記

參考鏈接&#xff1a; Python程式設計語言 文章目錄 第一部分 Python快速入門第1周 Python基本語法元素第2周 Python基本圖形繪制 第二部分 Python基礎語法第3周 基本數據類型3.1 數字類型及操作3.3 字符串類型及操作3.4 模塊2: time庫的使用 第4周 程序的控制結構4.1 程序的分…

ORACLE中創建如何創建表,并設置結構和默認值

使用select語句查看EMP表&#xff0c;根據COMM排序 默認情況下&#xff0c;空值會自動排列在尾部。 利用nulls last排序時將空值置底 利用nulls first排序時將空值置頂 例 創建一張出版社表 使用語句 create table 表名&#xff08;列名1 類型&#xff0c;列名2 類型&#xff0…

[轉載] C++靈魂所在之---多態的前世與今生

參考鏈接&#xff1a; Java是否支持goto 開頭先送大家一句話吧&#xff1a; 眾所周知&#xff0c;在20世紀80年代早期&#xff0c;C在貝爾實驗室誕生了&#xff0c;這是一門面向對象的語言&#xff0c;但它又不是全新的面向對象的語言&#xff0c;它是在傳統的語言…

Code Sinppet

如果你在使用VS 2005,如果你不能使用它的Code Snippet功能&#xff0c;如果你在實現抽象類override 方法時彈出&#xff1a;Code Snippet titled [Method Stub - Body] failed to load. Verify that refactoring snippets are recognized in the Code Snippet Manager and that…

暴風TV請來中國人工智能first lady馮雁教授任首席科學家

今日下午&#xff0c;暴風AI無屏電視發布會現場&#xff0c;暴風TV宣布邀請號稱“中國人工智能first lady”、于香港科技大學任教的馮雁教授&#xff0c;擔任暴風TV人工智能首席科學顧問。 馮雁教授于現場表示&#xff0c;選擇暴風TV合作的重要原因&#xff0c;一方面在于其個人…

[轉載] java 計算協方差_Java的深度:通過協方差暴露的API泄漏

參考鏈接&#xff1a; 關于Java中null的有趣事實 java 計算協方差 Java有時可能非常棘手&#xff0c;特別是在API設計中。 讓我們看一個非常有趣的展示柜。 jOOQ強烈地將API與實現分開。 所有API都在org.jooq包中&#xff0c;并且是公共的。 大多數實現是在org.jooq.impl包…

gulp之gulp.watch報錯

gulpfile.js如下&#xff1a; 問題&#xff1a; 第一次改動文件&#xff0c;監聽正常。再次改動&#xff0c;報錯&#xff0c;如下&#xff1a; 解決&#xff1a; 總結&#xff1a; 意思&#xff0c;gulpsequence這玩意兒返回的thunk只能執行一次 轉載于:https://www.cnblogs.c…

[轉載] mybatis

參考鏈接&#xff1a; 在Java中使用_(下劃線)作為變量名 mybatis第一天 1.mybatis概述和環境搭建 mybatis概述 mybatis環境搭建 1. 創建maven工程、添加開發依賴、創建數據庫和表&#xff1b; 2. 創建domain實體類和dao mybatis是一門java語言編寫持久層框架…

設置了li(float:right),里面的li反過來顯示 - 解決辦法

設置了li(float:right),里面的li反過來顯示 - 解決辦法 可以讓ul float:right ul里的li 依然float:left 本文轉自許琴 51CTO博客&#xff0c;原文鏈接&#xff1a;http://blog.51cto.com/xuqin/1127540&#xff0c;如需轉載請自行聯系原作者

[轉載] 純函數和函數柯里化

參考鏈接&#xff1a; 用示例編寫Java柯里化Currying函數 文章目錄 純函數什么是純函數純函數例子非純函數例子 函數柯里化函數柯里化簡單例子參數復用 純函數 什么是純函數 如果函數的調用參數相同&#xff0c;則永遠返回相同的結果。它不依賴于程序執行期間函數外部任何狀…

[轉載] scala

參考鏈接&#xff1a; 在Java的數字中使用下劃線 1 scala 底層是有一種隱式轉換機制&#xff0c;比如對String類型&#xff0c;底層會轉化Scala的StringOps類型 2 scala 的通用的化簡規則&#xff1a;調方法時候&#xff0c;方法的參數列表只有一個&#xff0c;則方法的&…

MySQL數據庫學習筆記

MySQL常用語法總結 一.創建Web數據庫 1.登陸到數據庫 mysql -h hostname -u username -p mysql -h hostname -u username -D dbname -p 2.創建數據庫 CREATE database dbname 3.使用數據庫 USE dbname 4.創建數據庫表 CREATE TABLE tablename (columns) 5.列的數據 create tabl…

[轉載] java實現四種常用排序算法

參考鏈接&#xff1a; 用Java排序 四種常用排序算法 ##注&#xff1a;從小到大排 ##冒泡排序## 特點&#xff1a;效率低&#xff0c;實現簡單 思想&#xff1a;每一趟將待排序序列中最大元素移到最后&#xff0c;剩下的為新的待排序序列&#xff0c;重復上述步驟直到排完所…

[轉載] Java復制對象與集合工具類

參考鏈接&#xff1a; Java中的類和對象 項目中經常需要將某個對象的屬性值復制給另一個對象&#xff0c;或者將一個集合復制到另一個集合。利用spring提供的BeanUtils&#xff0c;自己簡單封裝了一個工具類。 public class CopyUtils { /** * 復制集合 */ public static &l…

.NET深入學習筆記(4):深拷貝與淺拷貝(Deep Copy and Shallow Copy)

今天繼續利用準備WSE安全開發文章的空閑時間&#xff0c;完善《.NET深入學習筆記》系列&#xff08;基本都是.Net重要的知識點&#xff0c;我都做了詳細的總結&#xff0c;是什么、為什么、和怎么實現&#xff09;。想必很多人也接觸過這兩個概念。做過C的人對深淺拷貝的概念一…

VIM一般模式操作

2019獨角獸企業重金招聘Python工程師標準>>> vim介紹 vim和vi幾乎是一樣的&#xff0c;唯一的區別就是當編輯一個文本時&#xff0c;使用vi不會顯示顏色&#xff0c;而使用vim會顯示顏色。 vim有三個模式&#xff1a;一般模式&#xff0c;編輯模式&#xff0c;命令模…

[轉載] 解析Java的JNI編程中的對象引用與內存泄漏問題

參考鏈接&#xff1a; Java對象如何存儲在內存中 JNI&#xff0c;Java Native Interface&#xff0c;是 native code 的編程接口。JNI 使 Java 代碼程序可以與 native code 交互——在 Java 程序中調用 native code&#xff1b;在 native code 中嵌入 Java 虛擬機調用 Java 的…

[轉載] java中創建對象的方式

參考鏈接&#xff1a; 用Java創建對象的不同方法 java中的4種創建對象的方式&#xff1a; 在這片博文中和大家簡單分享一下常見的幾種創建java對象的方式 1.使用 new 的方式&#xff0c;這也是我們最常見的一種方式 我們以 Person 類來舉例說明 例&#xff1a; Person p…