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.mzph.cn/news/540368.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ORACLE中创建如何创建表,并设置结构和默认值

使用select语句查看EMP表&#xff0c;根据COMM排序 默认情况下&#xff0c;空值会自动排列在尾部。 利用nulls last排序时将空值置底 利用nulls first排序时将空值置顶 例 创建一张出版社表 使用语句 create table 表名&#xff08;列名1 类型&#xff0c;列名2 类型&#xff0…

暴风TV请来中国人工智能first lady冯雁教授任首席科学家

今日下午&#xff0c;暴风AI无屏电视发布会现场&#xff0c;暴风TV宣布邀请号称“中国人工智能first lady”、于香港科技大学任教的冯雁教授&#xff0c;担任暴风TV人工智能首席科学顾问。 冯雁教授于现场表示&#xff0c;选择暴风TV合作的重要原因&#xff0c;一方面在于其个人…

gulp之gulp.watch报错

gulpfile.js如下&#xff1a; 问题&#xff1a; 第一次改动文件&#xff0c;监听正常。再次改动&#xff0c;报错&#xff0c;如下&#xff1a; 解决&#xff1a; 总结&#xff1a; 意思&#xff0c;gulpsequence这玩意儿返回的thunk只能执行一次 转载于:https://www.cnblogs.c…

.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;命令模…

stateful set 学习笔记

2019独角兽企业重金招聘Python工程师标准>>> 1、创建pv # cat pv.yaml kind: PersistentVolume apiVersion: v1 metadata:name: task-pv-volumelabels:type: local spec:capacity:storage: 3GiaccessModes:- ReadWriteOncehostPath:path: "/tmp/data" 2、…

自定义控件---重写Listbox实现item图标变换和item点击事件

博客开通有一阵了&#xff0c;就是没有时间写&#xff0c;遗憾啊。&#xff01; 这几天做了个排序的自定义控件&#xff0c;在listbox item里放是button 并支持图标的交替变换 效果如下&#xff1a; 把代码贴上&#xff1a;1using System; 2using System.Collections.…

MySQL初识-架构-安装-初始化-连接-管理工具-数据文件

MySQL架构和结构分析 官方架构图 内部组件结构图 MySQL安装方式 MySQL初始化 MySQL工作模式及常用命令 交互式模式&#xff1a;mysql> 1234567891011121314# 交互式模式下的客户端命令mysql> help # 获取命令帮助 mysql> \? # 同上 mysql> \c # 取消命令执行 mysq…

mdm.Dialogs.promptModal()使用

这是prompt的扩展&#xff0c;提供了更多的功能&#xff0c;比如可以添加其他按钮和图标import mdm.*;mdm.Application.init(this, onInit);function onInit():void {// 启动程序...}quit.addEventListener(MouseEvent.CLICK,quitProgram);function quitProgram(evt:MouseEvent…

Gson的使用,对于不需要html escape的情况的处理

引入&#xff1a; 虽然是小问题&#xff0c;但是我还是需要记录下&#xff0c;我们知道&#xff0c;Google提供了一个Gson框架让我们高效的吧普通对象&#xff08;一般VO为佳&#xff09; 和json字符串之间进行互转。因为转换多数是和浏览器打交道的&#xff0c;所以一般默认的…

SpringBoot安装和创建简单的Web应用

SpringBoot安装 方式一&#xff1a; Eclipese->Help->Eclipse Marketplace ->Finde STS -> Install 注意&#xff1a;安装过程中挺慢&#xff0c;而且可能会报错&#xff0c;报错时需要重复以上步骤&#xff08;重新安装STS后&#xff0c;安装进度接之前的继续进行…

ASP.NET Session 详解

[ASP.NET] Session 详解 开发者在线 Builder.com.cn 更新时间:2008-03-23作者&#xff1a;黑暗凝聚力量&#xff0c;堕落方能自由 来源:CSDN 本文关键词&#xff1a; Web开发 ASP session 详解 本文仅代表作者个人观点&#xff0c;正确与否请读者自行研究&#xff01;阅读本文…

hadoop namenode管理元数据机制

一、简要namenode管理元数据机制&#xff1a; 二、详细namenode管理元数据机制&#xff1a; 三、secondary namenode 合并edits和fsimage&#xff1a; 四、namenode存储元数据细节&#xff1a; 五、checkpoint触发点&#xff1a; 本文转自lzf0530377451CTO博客&#xff0c;原文…

BABOK - 企业分析(Enterprise Analysis)概要

描述 企业分析描述我们如何捕捉、提炼并明晰业务需要&#xff0c;并定义一个可能实现这些业务需要的一个方案范围&#xff0c;它包括问题定义和分析&#xff0c;业务案例开发&#xff0c;可行性研究和方案范围定义 目的 明确业务战略需要和目标&#xff0c;并建议方案范围 任务…

6、EIGRP配置实验之负载均衡

1、实验拓扑 2、负载均衡原理 等价负载均衡&#xff1a;默认情况下EIGRP只支持等价负载均衡&#xff0c;默认支持4条线路的等价负载均衡&#xff0c;可以通过show ip protocols 查看&#xff0c;最大可以支持16条线路的等价负载均衡&#xff0c;可以在EIGRP路由进程下通过maxim…

haproxy+keepalived实现负载均衡及高可用

HAProxy是一个使用C语言编写的自由及开放源代码软件&#xff0c;其提供高性能性、负载均衡&#xff0c;以及基于TCP和HTTP的应用程序代理。相较与 Nginx&#xff0c;HAProxy 更专注与反向代理&#xff0c;因此它可以支持更多的选项&#xff0c;更精细的控制&#xff0c;更多的健…

iOS技术博客:App备案指南

&#x1f4dd; 摘要 本文介绍了移动应用程序&#xff08;App&#xff09;备案的重要性和流程。备案是规范App开发和运营的必要手段&#xff0c;有助于保护用户权益、维护网络安全和社会秩序。为了帮助开发者更好地了解备案流程&#xff0c;本文提供了一份最新、最全、最详的备…

Perl文件读写操作

本文转自 tiger506 51CTO博客&#xff0c;原文链接&#xff1a;http://blog.51cto.com/tiger506/830771&#xff0c;如需转载请自行联系原作者

不用正则表达式,用javascript从零写一个模板引擎(一)

前言 模板引擎的作用就是将模板渲染成html&#xff0c;html render(template,data)&#xff0c;常见的js模板引擎有Pug,Nunjucks,Mustache等。网上一些制作模板引擎的文章大部分是用正则表达式做一些hack工作&#xff0c;看完能收获的东西很少。本文将使用编译原理那套理论来打…

关于批量插入数据之我见(100万级别的数据,mysql)

2019独角兽企业重金招聘Python工程师标准>>> 因前段时间去面试&#xff0c;问到如何高效向数据库插入10万条记录&#xff0c;之前没处理过类似问题&#xff0c;也没看过相关资料&#xff0c;结果没答上来&#xff0c;今天就查了些资料&#xff0c;总结出三种方法&am…