详解安卓系统APK文件的结构
安卓系统文件夹详细结构及其文件解析
安卓系统文件夹详细结构及其文件解析安卓系统的文件夹结构是一个非常复杂的层次结构,涵盖了各种各样的文件和文件夹,用于管理设备的各种功能和资源。
下面是对安卓系统文件夹结构的详细解析。
1.根目录:- /system:系统级文件夹,包含了系统的核心组件和应用程序。
其中最重要的文件是/ system / bin / 和/ system / xbin / 中的二进制可执行文件。
- /data:包含了应用程序和用户数据的文件夹。
每个应用程序都会被分配一个唯一的文件夹,其中包含了该应用程序的所有数据。
- /cache:用于存储临时文件和缓存文件。
- /mnt:用于挂载外部存储设备和其他文件系统。
2. /system目录:- /system/bin:包含了系统级的可执行文件,例如adb、mount等。
- /system/etc:包含了一些系统配置文件,例如hosts文件用于域名解析。
- /system/framework:包含了系统框架的核心文件,例如Android 的API类库和资源文件。
- /system/lib:包含了系统级的共享库,例如图形渲染库、音频库等。
- /system/media:包含了系统的多媒体资源文件,例如系统的铃声、壁纸等。
- /system/usr:包含了一些系统级的用户应用程序。
3. /data目录:- /data/app:包含了已安装的应用程序的APK文件。
- /data/data:包含了应用程序的数据文件,包括数据库、偏好设置等。
- /data/cache:包含了应用程序的缓存文件。
- /data/misc:包含了一些杂项的系统数据,例如wifi配置文件。
- /data/system:包含了系统级的数据,例如安全证书、用户配置等。
4. /cache目录:- /cache/dalvik-cache:包含了Dalvik虚拟机的缓存文件,用于提高应用程序的启动速度。
- /cache/recovery:包含了刷机时使用的恢复模式的相关文件。
APK文件结构
APK⽂件结构APK (Android Package) ⽂件,是⼀个后缀名为.apk的压缩⽂件,APK⽂件中包含了⼀个Android应⽤程序的所有内容,是Android平台⽤于安装应⽤程序的⽂件。
assets 存放需要打包到 APK 中的静态⽂件lib 存放应⽤程序所依赖的 native 库res 存放应⽤程序的资源⽂件META-INF 存放应⽤程序的签名和证书AndroidManifest.xml 应⽤程序配置⽂件classes.dex dex 可执⾏⽂件resources.arse 资源索引表,记录资源⽂件和资源 ID 之间的映射关系res是resource的缩写,存放资源⽂件,存在这个⽂件夹下的所有⽂件都会映射到Android⼯程的.R⽂件中,⽣成对应的ID,访问的时候直接使⽤资源ID,即R.id.filename。
res ⽂件夹下可以包含多个⽂件夹,其中aim存放动画⽂件drawable⽬录存放图像资源layout⽬录存放布局⽂件values⽬录存放⼀些特征值,colors.xml存放color颜⾊值,dimens.xml定义尺⼨值,string.xml定义字符串的值,styles.xml定义样式对象xml⽂件夹存放任意 xml ⽂件,在运⾏时可以通过 Resources.getXML() 读取raw是可以直接赋值到设备中的任意⽂件,⽆需编译lib存放应⽤程序依赖的native库⽂件,⼀般是⽤C/C++编写,这⾥的lib库可能包含4中不同类型,根据CPU型号的不同,⼤体可以分为ARM,ARM-v7a,MIPS,X86,分别对应着ARM架构,ARM-V7架构,MIPS架构和X86架构。
不同的CPU架构对应着不同的⽬录,每个⽬录中可以放很多对应版本的so库,且这个⽬录的结构固定,⽤户只能按照这个⽬录存放⾃⼰的so库。
⽬前市场上使⽤的移动终端⼤多是基于ARM或者ARM-V7a架构的,X86和MIPS架构的移动智能终端⽐较少,所以有些应⽤程序lib⽬录下只包含armeabi⽬录或者armeabi-v7a⽬录。
安卓系统中APK和各种英文文件名详解
安卓系统中APK和各种英文文件名详解一个完整的ROM根目录会有以下几个文件夹及文件:dataMETA-INsystemboot.img系统目录说明1. 应用程序安装目录1) 系统应用程序所在目录/system/app/*.apk2)用户安装应用程序所在目录/data/app/*.apk3) 注意:a)在模拟器中,每重启一次,/system/app/下的应用都会被还原,有时/data/app下也会被清除b)若在/system/app和/data/app下有重名的应用,不一定会启动哪一个,尤其是在adb install杀死正在运行的程序时,有时旧的就会被启动2.用户数据所在目录/data/data/应用包名/shared_prefs 配置文件/data/data/应用包名/databases/* 库文件所在目录3. SD卡对应目录/sdcard/而我们需要处理的只是两个文件夹里面的内容:data/app –该文本夹里的文件可以全删,也可以自由添加自已所需安装的应用软件,刷机安装后可以自由删除。
system/app –在这个文件夹下的程序为系统默认的组件,可以看到都是以APK格式结尾的文件,但有些自制的ROM里面还有和APK文件名对应的odex文件。
我们主要是针对该文件夹里的文件进行精简,如果有odex文件的,删除APK文件名时同时也删除与其对应的odex 文件。
虽然一般定制时只是对以上两个文件夹里的文件做相应的增减,但我们还是一起来了解system相应目录相应文件的用途吧。
(rom版本不同里面的APK也会不一样)\\system\\app\\system\\app\\AlarmClock.apk 闹钟\\system\\app\\Browser.apk 浏览器\\system\\app\\Bugreport.apk Bug报告\\system\\app\\Calculator.apk 计算器\\system\\app\\Calendar.apk 日历\\system\\app\\CalendarProvider.apk 日历提供\\system\\app\\Camera.apk 照相机\\system\\app\\com.amazon.mp3.apk 亚马逊音乐\\system\\app\\Contacts.apk 联系人\\system\\app\\DownloadProvider.apk 下载提供\\system\\app\\DrmProvider.apk DRM数字版权提供\\system\\app\\Email.apk 电子邮件客户端\\system\\app\\FieldTest.apk 测试程序\\system\\app\\GDataFeedsProvider.apk GoogleData提供\\system\\app\\Gmail.apk Gmail电子邮件\\system\\app\\GmailProvider.apk Gmail提供\\system\\app\\GoogleApps.apk 谷歌程序包\\system\\app\\GoogleSearch.apk 搜索工具\\system\\app\\gtalkservice.apk GTalk服务\\system\\app\\HTMLViewer.apk HTML查看器\\system\\app\\HtcTwitter.apk 集成Twitter客户端PEEP\\system\\app\\IM.apk 即使通讯组件包含MSN、yahoo通\\system\\app\\ImCredentialProvider.apk\\system\\app\\ImProvider.apk\\system\\app\\Launcher.apk 启动加载器\\system\\app\\HtcNaviPanel.apk 导航软件\\system\\app\\Maps.apk 电子地图\\system\\app\\MediaProvider.apk 多媒体播放提供\\system\\app\\Mms.apk 短信、彩信\\system\\app\\Music.apk 音乐播放器\\system\\app\\MyFaves.apk T-Mobile MyFaves程序\\system\\app\\NewsReader.apk 新闻阅读器\\system\\app\\PackageInstaller.apk apk安装程序\\system\\app\\Phone.apk 电话拨号器\\system\\app\\Settings.apk 系统设置\\system\\app\\SettingsProvider.apk 设置提供\\system\\app\\SetupWizard.apk 设置向导\\system\\app\\SoundRecorder.apk 录音工具\\system\\app\\Street.apk 街景地图\\system\\app\\Sync.apk 同步程序\\system\\app\\Talk.apk 语音程序\\system\\app\\T elephonyProvider.apk 电话提供\\system\\app\\Updater.apk 更新程序\\system\\app\\VpnServices.apk VPN服务\\system\\app\\Vending.apk 制造商信息\\system\\app\\VoiceDialer.apk 语音拨号器\\system\\app\\VoiceSearch.apk 语音搜索\\system\\app\\YouTube.apk Youtube视频\\system\\bin这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件,Android手机网就主要文件做下简单的分析介绍:\\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接入点设置等核心配置。
安卓系统文件夹结构及其文件解析(详细)
安卓系统文件夹及其文件解析打开Android文件管理器,会发现里面数十个英文名称命名的文件夹罗列其中,很多功能我们可以从其名字上略有所知,内部大批量的文件却让我们有些一头雾水。
这些文件是什么?有什么用?我们能不能删?这些都是我们脑中充满疑问的。
现在将将Android手机内部文件夹的架构和各文件的功能描述介绍给大家,让大家自己手机的内部资源有个比较透彻的理解,同时也避免了用户误删造成的数据丢失和系统崩溃。
【文件夹功能简介】\system\app这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。
在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。
\system\bin这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux 系统自带的组件(命令)\system\etc从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
\system\fonts字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T-Mobile G1上可以清楚的看到显示简体中文正常,其中DroidSansFallback.ttf文件大小。
\system\frameworkframework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。
\system\liblib目录中存放的主要是系统底层库,一些so文件,如平台运行时库。
\system\media\system\media\audio铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音。
\system\sounds默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。
\system\usr用户文件夹,包含共享、键盘布局、时间区域文件等。
\system\app这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。
Android工程各文件夹结构的含义及全代码使用与全解
Android工程各文件夹结构的含义及全代码使用与全解对Android这些东西一开始听迷惑的,不知道什么东西该放在上面地方,把网上的资源整合一下,放在这里。
1.总述我们建立一个android工程,其结构如下:1.1、src文件夹顾名思义(src, source code)该文件夹是放项目的源代码的。
A. android.app.Activity类:Activity类关注创建窗口与交互,它使用方法setContentView(View)将自己的UI放到里面。
重要的方法:onCreate(Bundle):初始化活动(Activity)。
(1)通过调用setContentView(int)方法加载布局资源(layoutresource)从而实现对UI的定义;(2)另一方面,可以用findViewById(int)在UI中检索到需要编程交互的小部件(widgets)。
主要的思想:setContentView指定由哪个文件指定布局(main.xml),可以将这个界面显示出来,然后我们进行相关操作,我们的操作会被包装成为一个意图(Intent),然后这个意图对应有相关的activity进行处理。
B. android.os.Bundle类:从字符串值映射各种可打包的(Parcelable)类型(Bundle单词就是捆绑的意思,所有这个类很好理解和记忆)。
如该类提供了公有方法——public boolean containKey(String key),如果给定的key包含在Bundle的映射中返回true,否则返回false。
该类实现了Parceable和Cloneable接口,所以它具有这两者的特性。
1.2、gen文件夹该文件夹下面有个R.java文件,R.java是在建立项目时自动生成的,这个文件是只读模式的,不能更改。
R.java文件中定义了一个类——R,R类中包含很多静态类,且静态类的名字都与res中的一个名字对应,即R类定义该项目所有资源的索引。
安卓系统文件夹详细结构及其文件解析
安卓系统文件夹详细结构及其文件解析Android操作系统是一种基于Linux内核的开源操作系统,它的文件系统也是采用的Linux文件系统结构。
下面我将详细介绍安卓系统文件夹的结构及其文件解析。
1. /system- /bin: 该文件夹存放一些包含Android系统所需的可执行文件,如busybox等。
- /etc: 该文件夹存放一些系统配置文件,如/hosts文件、init.d 文件夹等。
- /lib: 该文件夹存放一些系统库文件,如libc.so、libm.so等。
- /usr: 该文件夹存放一些系统资源文件,如fonts文件夹、keylayout文件夹等。
2. /data- /app: 该文件夹存放已安装的应用程序,每个应用程序都会生成一个以包名命名的子文件夹。
- /cache: 该文件夹存放系统缓存文件,如应用程序缓存、系统临时文件等。
- /data: 该文件夹存放应用程序的数据文件,如数据库文件、SharedPreferences文件等。
- /system: 该文件夹存放一些系统级别的数据文件,如系统配置文件、系统数据库文件等。
- /block: 该文件夹存放块设备文件,如硬盘、U盘等。
- /input: 该文件夹存放输入设备文件,如键盘、鼠标等。
- /graphics: 该文件夹存放图形设备文件,如显示器等。
- /net: 该文件夹存放网络设备文件,如网卡等。
4. /proc- 各个进程的文件夹: 在/proc文件夹下,以进程ID命名的文件夹中存放有关该进程的信息,如进程的状态、资源占用情况等。
5. /sys- 各个设备的文件夹: 在/sys文件夹下,存放了系统的各个设备的相关信息,如CPU、内存、磁盘等设备。
6. /mnt- /sdcard: 该文件夹是外部存储的挂载点,通常被映射为手机的SD 卡。
- /usb: 该文件夹是USB存储的挂载点,用于连接USB存储设备。
7. /root- 该文件夹是Android系统的根目录。
安卓脱壳机原理
安卓脱壳机是一种用于提取安卓应用程序(APK)的工具,它的原理是通过解析APK文件,提取其中的代码和资源文件。
具体来说,安卓脱壳机的工作流程如下:
1. 解析APK文件:安卓脱壳机首先会解析APK文件的结构,包括AndroidManifest.xml文件、classes.dex文件和资源文件等。
2. 提取DEX文件:安卓应用程序的核心代码是存储在classes.dex文件中的,安卓脱壳机会提取出这个DEX文件。
3. 反编译DEX文件:安卓脱壳机会对提取出的DEX文件进行反编译,将其转换为可读的Java代码。
4. 提取资源文件:安卓应用程序还包含一些资源文件,如图片、音频等,安卓脱壳机会将这些资源文件提取出来。
通过以上步骤,安卓脱壳机可以将APK文件中的代码和资源提取出来,方便进行分析和修改。
这对于安全研究人员、逆向工程师和开发者来说是非常有用的。
需要注意的是,使用安卓脱壳机进行逆向工程可能涉及到法律和道德问题,应该
遵守相关法律法规和道德准则。
安卓系统文件夹结构及其文件解析
安卓系统文件夹结构及其文件解析安卓系统的文件夹结构是由多个文件夹和文件组成,每个文件夹和文件都有特定的功能和用途。
下面将详细介绍安卓系统文件夹结构及其文件解析。
1.根目录(/)根目录是整个文件系统的起点,它包含了一些重要的目录和文件,例如:- system:系统文件夹,包含了系统的核心文件和程序。
- data:数据文件夹,包含了应用程序的数据和设置。
- dev:设备文件夹,包含了设备的文件和设备节点。
- proc:进程文件夹,包含了正在运行的进程的信息。
- etc:配置文件夹,包含了系统的配置文件。
- mnt:挂载文件夹,包含了已挂载的存储设备。
- sys:系统文件夹,包含了系统的配置和状态信息。
- vendor:供应商文件夹,包含了设备供应商提供的一些文件。
2. system文件夹system文件夹是安卓系统的核心,包含了系统的核心文件和程序。
其中一些重要的子文件夹和文件包括:- app:应用程序文件夹,包含了系统预装的应用程序。
- etc:配置文件夹,包含了系统的配置文件。
- lib:共享库文件夹,包含了系统的共享库文件。
- media:多媒体文件夹,包含了系统的多媒体文件。
- framework:框架文件夹,包含了系统的框架文件。
- priv-app:特权应用程序文件夹,包含了一些特权应用程序。
3. data文件夹data文件夹包含了应用程序的数据和设置。
其中一些重要的子文件夹和文件包括:- app:应用程序文件夹,包含了已安装的应用程序。
- data:数据文件夹,包含了应用程序的数据。
- system:系统数据文件夹,包含了一些系统的数据文件。
- dalvik-cache:Dalvik虚拟机缓存文件夹,包含了应用程序的二进制代码缓存。
- shared_prefs:共享首选项文件夹,包含了应用程序的共享首选项。
4. dev文件夹dev文件夹包含了设备的文件和设备节点。
其中一些重要的文件和文件夹包括:- null:空设备文件,用于丢弃输出。
Android 包管理(APK管理)机制详细解析
一 、APK安装方式
adb install/push *.apk shell install 文件浏览器双击
APK
installation
Android market
PackageManagerService
scanPackageLI()
packageinstaller.apk SD卡安装
building in system img
… ...
二、PackageManagerService启动过程
PackageManagerService.main() PackageManagerService m = new PackageManagerService(); ServiceManager.addService("package", m); 建立installer与installd的socket联接
4.检查/data/system/packages.xml是否存在,这个文件是在解析apk时由 writeLP()创建的,里面记录了系统的permissions,以及每个apk的name ,codePath,flags,ts,version,uesrid等信息,这些信息主要通过apk的 AndroidManifest.xml解析获取,解析完apk后将更新信息写入这个文件并保 存到flash,下次开机直接从里面读取相关信息添加到内存相关列表中。当有apk 升级,安装或删除时会更新这个文件。
Jar to Dex Conversion
一个应用,一个进程,一个虚拟机实例
每一个Android应用都运行在一个 Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立 的进程空间。虚拟机的线程机制,内存分配和管理,Mutex等等都是依赖底层操作系统实现 的。所有 Android 应用的线程都对应一个 Linux 线程,虚拟机因而可以更多的依赖操作系统 的线程调度和管理机制。不同的应用在不同的进程空间里运行,加之对不同来源的应用都使 用不同的Linux用户来运行,可以最大程度的保护应用的安全和独立运行。
安卓手机system_app目录下apk文件解释
安卓手机system/app目录下apk文件解释(蓝字代表我手机版本里的,红色代表在精简过程中可删的,绿色代表我手机里有,但不确定是什么功能)对于删除手机系统文件所造成的后果本人概不负责,请三思而后行。
谢谢!本人建议将你想删除的文件,重命名加后缀名(.old)即可,这样可即使还原文件避免系统崩溃给你带来的不便。
1 AccountSyncManager.apk 账号管理程序(设置里面的账户与同步,删除后进不去)2 AdobeReader.apk PDF阅读器(可删)3 Android_Finance_5_0_for_API_1_6_update.apk CSL旗下的Invest Pro财经资讯程序(可删)4 AndroidMusicHolic.apk CSL的One2Free的流动娱乐服务Musicholic,音乐库(可删)5 ApplicationsProvider.apk 应用程序支持服务(删除后不能连接电脑同步电话号码)6 AppSharing.apk 应用程序分享(可删,但进程序列表,按菜单键无分享选项)7 BlackBoard.apk 内置的黑板皮肤(自带皮肤,可删)8 Bluetooth.apk 蓝牙共享(删了就没有蓝牙了)9 BrcmBluetoothServices.apk 蓝牙服务(同上)(8和9的蓝牙服务不可删)10 Browser.apk 谷歌浏览器(可删)11 Calculator.apk 计算器(可删)12 Calendar.apk 日历(会自启动,可删)13 CalendarProvider.apk 日历存储服务(不用会议、约会之类的可删)14 CertInstaller.apk 证书安装程序15 CheckinProvider.apk 签入服务16 Clicker.apk 键盘输入校正工具(可删)17 com.htc.FMRadioWidget.apk 收音机插件(可删)18 com.htc.FriendStreamWidget.apk 用于整合社交网站的插件(可删)19 com.htc.MusicWidget.apk 音乐插件(自带音乐挺好用的)20 com.htc.PlurkWidget.apk 社交网Plurk插件(可删)21 com.htc.StockWidget.apk 股票插件(可删)22 com.htc.TwitterWidget.apk 国外微博Twitter插件(可删)23 com.htc.WeatherWidget.apk 天气插件(自带天气)24 ContactsProvider.apk 存储联系人信息25 CSPeopleSyncService.apk HTC提供的同步服务(不用GOOGLE服务的可删)26 CustomizationSettingsProvider.apk 自定义设置服务27 CustomizationSetup.apk 自定义安装程序28 DCSImpl.apk 集散控制系统服务29 DCSStock.apk 股票后台传输程序(可删)30 DCSUtility.apk 集散控制系统公共程序组件31 DebugTool.apk 调试工具32 DefaultContainerService.apk 默认通讯录服务33 DFPI.apk 这个不太清楚,但经过试验,删除了没影响。
安卓系统文件夹结构及其文件解析
安卓系统文件夹结构及其文件解析Android系统的文件夹结构是由一系列目录和文件组成的,用于存储系统文件、应用程序、用户数据等。
以下是Android系统文件夹结构的详细解析。
1. /system:该目录包含了系统级别的文件和应用程序。
主要包含以下几个子目录和文件:- /bin:存放一些系统的可执行文件。
- /etc:存放一些系统的配置文件。
- /lib:存放系统级别的库文件。
- /vendor:存放供应商定制的文件和应用程序。
2. /data:该目录存放应用程序的数据、用户数据等。
主要包含以下几个子目录和文件:- /data/app:存放应用程序的安装包及其相关数据。
- /data/data:存放应用程序的数据。
- /data/system:存放系统级别的数据,如配置文件、登录信息等。
- /data/user:存放用户的数据,如文档、照片等。
3. /cache:该目录存放系统的缓存文件。
主要包含以下几个子目录和文件:- /cache/app:存放应用程序的缓存数据。
- /cache/dalvik-cache:存放Dalvik虚拟机的缓存文件。
- /cache/recovery:存放系统恢复相关的缓存文件。
4. /root:该目录是系统的根目录,包含一些系统级别的文件和目录。
5. /mnt:该目录是挂载点目录,用于挂载外部存储设备和其他文件系统。
6. /proc:该目录是一个虚拟文件系统,用于存放系统和进程相关的信息。
除了以上主要的文件夹,还有一些重要的文件可以解析如下:7. /init.rc:该文件是系统的启动脚本,用于初始化系统的各个组件和服务。
8. /build.prop:该文件包含了系统的一些基本属性和配置,如设备型号、版本号等。
9. /system/framework:该目录存放Android系统的核心框架文件。
10. /system/app:该目录存放系统自带的应用程序。
11. /system/lib:该目录存放系统级别的共享库文件。
安卓系统文件结构
安卓系统文件结构安卓系统采用的是Linux核心,因此其文件系统也采用类Unix文件系统的结构。
以下是安卓系统文件结构的详细解释。
1. /system目录:这是安卓系统的核心目录,包含了系统的关键文件和可执行程序。
其中最重要的子目录是/bin、/lib和/etc。
- /bin目录:存放一些系统重要的可执行文件,如sh、ls等命令。
- /lib目录:存放一些系统库文件,用于支持系统运行。
- /etc目录:存放一些系统配置文件,如hosts文件等。
- /data/app目录:用于存储应用程序的安装文件。
- /data/data目录:用于存储应用程序的数据。
- /data/system目录:用于存储一些系统重要的数据,如用户的账户信息、设备的安全信息等。
3. /sdcard目录:存储用户的SD卡中的数据,如照片、音乐和视频等。
4. /proc目录:存储内核和进程相关的信息。
这个目录中的文件是虚拟的,实际上并不存在。
5. /sys目录:存储设备和设备驱动的信息。
6. /dev目录:存储设备文件,用于与硬件设备进行通信。
7. /mnt目录:用于挂载外部存储设备的目录,如USB存储设备、SD 卡等。
8. /cache目录:存储应用程序的缓存文件。
9. /root目录:这是系统的超级用户目录,一般情况下没有访问权限。
10. /sbin目录:存储一些系统命令,只有管理员才有访问权限。
这些只是安卓系统文件结构的一部分,还有很多子目录和文件没有提到。
总的来说,安卓系统文件结构是一个分层结构,不同的目录用于存储不同类型的文件和数据。
安卓系统地软件后缀名apk简介
实用标准文案安卓系统的软件后缀名apk简介apk或是类似Symbian SisAndroid安装包(apk)。
APKAndroidPackageAPK是的缩写,即手机中执行即可模拟器或Android的文件格式。
通过将APKAndroid文件直接传到Sisx编译的工程打包成一个安装程序文件,格式为一样,把android sdk安装。
apk文件和sis解压后,可以看到UnZip格式,但后缀名被修改为apk,通过文件其实是apk。
APKzipJava 执行程序,并非的全称,即Android Dalvik文件,DexDex是Dalvik VM executes,然后类似在运行一个程序时首先需要UnZip的字节码而是Dalvik字节码。
AndroidME 文件有区别。
Windows Mobile 中的PESymbian那样直接,和目录文件结构APK 了解开发环境反编译apk展开文件结构精彩文档.实用标准文案APK 了解开发环境apk反编译展开文件结构(注:Jar文件中常可以看到); 1. META-INF\;) 2. res\ (注:存放资源文件的目录) ; 3. AndroidManifest.xml (注:程序全局配置文件Dalvik字节码); 4. classes.dex (注:注:编译后的二进制资源文件) 5. resources.arsc(。
APK了解格式,最终运行时加载器会解的执行文件被打包为apkAndroid在平台中dalvik vm 但分支相关的安全访问,androidmanifest.xml压然后获取编译后的文件中的permission文件夹下会发现执行是不受/system/appapk文件传到仍然存在很多安全限制,如果你将文件默认会放apk中系统的限制的。
安装的文件可能不是这个文件夹,而在android rom root入这个文件夹,它们拥有着权限。
开发环境精彩文档.实用标准文案极为类似,而且Java Android是一个基于Java的开发环境,它是一种与广被接受的文档的书写也在API容易的多的开发语言,这将一种移动开发的规范。
apk的名词解释
apk的名词解释在现代手机应用程序的世界中,我们经常会听到一个名词——APK。
那么,APK到底是什么?为什么它如此重要?本文将对APK进行详细解释,探讨其定义、构成以及在智能手机应用程序中的作用。
1. APK的定义APK是Android Package的缩写,它是Android操作系统上的一种应用程序安装包文件格式。
简单来说,APK就是一个存储在Android手机上的可执行文件,类似于Windows操作系统中的.exe文件。
当用户下载并安装一个应用时,实际上是将对应的APK文件存储到设备中。
2. APK的构成一个APK文件实际上是一个压缩包,类似于Zip压缩文件格式。
当我们打开一个APK文件时,可以看到其中包含了许多不同的文件和文件夹,它们合作以使应用程序正常运行。
首先,APK文件中最重要的部分是AndroidManifest.xml文件。
这个文件是Android应用程序的核心配置文件,其中包含了应用程序的基本信息,如应用名称、版本号、权限要求等。
Android系统会根据这个文件来对应用程序进行初始化和管理。
除了配置文件外,APK文件还包含了许多资源文件,如图片、音频和视频文件等。
这些资源文件被应用程序用于展示图像、播放声音和视频等功能。
在APK中,这些资源文件通常存放在res文件夹中,并通过对应的文件路径调用。
此外,APK文件还包括了应用程序的Java类文件以及它们的库文件。
这些文件负责实现应用程序的具体功能。
开发人员会将应用的源代码编译成Java类文件,并与库文件一起打包进APK中。
当用户安装应用时,这些文件会被解压到设备上,并根据需要被操作系统加载和执行。
3. APK的作用APK可以说是每个Android应用的基石。
它是应用程序的载体,也是用户安装和运行应用的关键。
首先,APK文件允许开发人员将自己的应用程序发布到各种应用商店和下载平台上。
用户可以通过这些渠道获得APK文件,并将其安装到自己的设备上。
安卓开发_APK文件目录解析
安卓开发_APK文件目录解析安卓开发_APK文件目录解析APK文件目录解析:(归纳以下常见的,重要的会用自己的理解去解释)- META-INF-----------------------------签名文件- res--------------------------------------资源文件,(图标美化可以从这着手)- anim- color- drawable---------------整个APK图标所在文件夹- drawable-hdpi---------高分辨- drawable-land---------中分辨- drawable-land-hdpi---低分辨- drawable-mdpi- drawable-port- drawable-port-hdpi- layout-------------------(界面布局xml文件所在文件夹,界面美化可从这里着手)- layout-land- layout-port- menu----------------------(一些菜单文件所在目录)- raw------------------------(存放帮助类文档或其他资源的文件夹,如help.html;clock.zip)- xml---------------------(其他一些xml文件所在目录)- AndroidManifest.xml------------是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等等信息,这里面基本是没有要汉化的,但是极个别软件的软件名,或是个别单词会存在于这个主XML中!- classes.dex-----------------------是java源码编译后生成的java字节码文件,通俗点就是整个软件的代码文件- resources.arsc-------------------是编译后的二进制资源文件,是主要的资源文件,汉化时首先要看这个文件,最先汉化的也是这个文件!解析下:- 多数情况都要汉化的是resources.arsc、classes.dex和res文件夹里的***.xml文件。
APK及相关的Android路径
APK及相关的Android路径APK(Android package, ):android安装包,由(Android Assert Packaging Tool,已集成到⼯具集中)把AndroidManifest.xml、资源⽂件、lib动态链接库、dex(Dalvik⼆进制字节码)等归档成的zip压缩包。
assets:对应项⽬⼯程asset⽬录下的⽂件,可以使⽤AssetManager获取注:其下的main.obb.png为⼀个压缩⽅式为仅存储的标准zip⽂件lib:包含适⽤于不同处理器的第三⽅动态链接库,这⾥边可以有多个⼦⽬录。
如:armeabi、armeabi-v7a、 arm64-v8a,、x86,、x86_64以及mipsMETE-INF:存放签名证书等信息;其中包含两个签名⽂件(CERT.SF和CERT.RSA)和⼀个manifest⽂件(MANIFEST.MF)jdk1.8.0_77\bin\keytool.exe -printcert -file %apkdir%\CERT.RSA// 查看当前apk的签名信息res:包含那些没有被编译到resources.arsc的资源(如:应⽤图标、字符串表等)AndroidManifest.xml:⼆进制格式的manifest⽂件classes*.dex:Dalvik EXcutable file,Dalvik虚拟机执⾏程序,java⽂件先编译为class⽂件,然后打包成dex⼆进制字节码⽂件。
⼀个APK中有多个dex⽂件。
resources.arsc:存储编译好的资源,包括项⽬⼯程中的res/values⽬录⾥的xml⽂件,它们都被编译成⼆进制格式,也包括⼀些路径,指向那些没有被编译的资源,⽐如layout⽂件和图⽚Android系统⽬录结构/init 系统启动⽂件/bin 常⽤的系统本地命令(⼆进制)如:du、ls、mv等/systembuild.prop 系统设置和变更属性app 安装的系统应⽤所在的⽬录bin 常⽤的系统本地命令(⼆进制)如:ps、cp、rm等etc 系统配置⽂件hosts ⽤于配置IP或域名的重定向⽂件font 字体⽬录framework Java平台架构核⼼库,jar包和odex优化的⽂件lib 32位系统底层共享库,.so库⽂件lib64 64位系统底层共享库,.so库⽂件egllibGLES_android.solibart-compiler.solibart-dexlayout.solibart.solibc++.solibc.solibstdc++.solib_malloc_debug.solib_malloc_hooks.solibEGL.solibGLESv1_CM.solibGLESv2.solibGLESv3.so... ...xbin 不常⽤的系统管理⼯具,相当于linux的/sbinmediaaudio 铃声,提⽰⾳等⾳频⽂件, .oggnotifications 通知ui 界⾯alarms 警告ringtones 铃声usr ⽤户⽂件夹,包含共享、键盘布局、时间区域keycharskeylayoutsharesrec 配置......vendor ⼚商⽂件build.propapp ⼚商⾃带应⽤所在⽬录bin ⼚商⾃带命令⼯具etcliblib64egleglSubDriverAndroid.solibGL_adreno.solibGLESv1_CM_adreno.solibGLESv2_adreno.solibq3dtools_adreno.solibq3dtools_esx.solibQTapGLES.so libjson.so... .../etc --> 软链接指向 /system/etc/vendor --> 软链接指向/system/vendor/dev 存放设备节点⽂件/proc 全局系统信息/data ⽤户软件和各种数据local/tmp 临时⽬录,⽆权限要求app 普通程序安装⽬录data<package_name>files Context.getFilesDir() ,Context.openFileOutput() 获取的⽬录,应⽤安装⽬录下cache Context.getCacheDir() 获取的⽬录,应⽤安装⽬录下,系统会⾃动在内存不⾜或⽬录⼤⼩达到特定数值时⾃动清理。
安卓系统文件夹结构详解
安卓系统文件夹结构详解\\system\\app这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。
在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\\data\\文件夹中。
下面是详细的介绍:\\system\\bin这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary 二进制的程序,里面主要是Linux系统自带的组件,Android手机网就主要文件做下简单的分析介绍:\\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 etcfg 网络设置\\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\\su**ceflinger触摸感应驱动\\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接入点设置等核心配置。
干货深度讲解APP结构,看完后你学会了?
⼲货深度讲解APP结构,看完后你学会了?本⽂节选⾃霍格沃兹测试学院内部教材我们要学习App结构,那么就是⼀定先了解APK包的结构。
什么是APKAPK 是 Android Package 的缩写,其实就是 Android 的安装包。
通过将 APK ⽂件直接传到 Android 模拟器或Android ⼿机中执⾏即可安装。
APK ⽂件其实是 zip 格式,但后缀名被修改为 apk,通过 Android Studio 可以看到 APK 内部的⽂件。
APK结构知道什么是 APK 之后,接下来再来看看 APK ⾥⾯的结构是怎么样的。
下⾯拿雪球 APK 来举例。
lib/ ⽬录存放的是⼀些 so ⽂件。
so ⽂件是⼆进制⽂件,⽤来兼容各种类型的 CPU。
Android 开发中,在打包发布应⽤时会选择应⽤适配的 CPU 架构平台,在引⽤第三⽅库时也遇到根据不同 CPU 架构引⼊相应的 so 包。
Android主要包括这⼏种 CPU 架构:armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips,⼤多数情况下只需要⽀持armabi 与 x86 的架构即可。
不同的 CPU 架构决定了 app 可以运⾏在哪些设备上。
⽐如我们的⼿机设备⼀般来说⽤的是 arm 架构,⽽我们的模拟器⼀般来说是 x86 架构。
如果app 只⽀持 arm 架构的话,那么就只能安装在真机上,模拟器上安装就会不成功。
如果是两种架构都⽀持的话,那么就是真机和模拟器都可以安装了。
res/ ⽬录res ⽬录是⼯程资源⽬录,存放的是各种资源⽂件,包括界⾯布局,图⽚,字符串等。
assets/ ⽬录assets ⽬录⽤来存放配置⽂件。
classes(n).dex ⽂件DEX 编译 Java 的 Class ⽂件,⽣成 classes.dex ⽂件。
resources.arsc ⽂件resources.arsc ⽂件是编译后的⼆进制资源⽂件。
APK
以apkdb编译apk文件为例,只需要在安装apkdb后,直接右击反编译就可以将apk文件反编译出来。
1.使用原生apktool工具,需要将apktool的两个文件释放到window目录下,在cmd中使用 apktool d apk 文件名命令来编译apk文件,此时命令行的执行目录与apk文件所在目录必须一致。
注意:zipalign操作必须且仅在标记apk文件附有个人加密钥之后。如果在标记之前进行zipalign操作,标 记过程将会干扰整理。
谢谢观看
2.首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是 java文件编译再通过dx工具 打包而成的;将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录,运 行。
优化
Android SDK中包含了一个用于优化APK的新工具zipalign,它能够对打包的应用程序进行优化。通过 zipalign优化后的应用程序可使得Android与应用程序间的交互更加有效率。
应用的生命周期
应用的生命周期是由Android OS操作系统进行管理的,活动进程都将做为系统命令进行创建,正确处理这些 事件对一个应用程序来说是极为重要的,因为终端用户不会知道什么是正确的。
apk反编译
反编译工具
Hale Waihona Puke 反编译方法1.最典型的apk编译工具的核心是apktool,但是因为操作需要调用cmd命令,所以出现了很多具有可视化界 面的各种编译工具,像easyapk、apkdb、doapk。
APK
安卓系统应用程序包文件格式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【什么是apk】 ቤተ መጻሕፍቲ ባይዱ
APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
Android模拟器中提供了一个dex文件的反编译工具,dexdump。用法为首先启动Android模拟器,把要查看的dex文件用adb push上传的模拟器中,然后通过adb shell登录,找到要查看的dex文件,执行dexdump xxx.dex.
【classes.dex文件】
classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。目前常见的java反编译工具都不能处理dex文件。
【扩展阅读】
APK 文件的结构是什么?
一个APK文件结构为:
META-INF\ Jar文件中常可以看到
res\ 存放资源文件的目录
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik字节码
resources.arsc 编译后的二进制资源文件
总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。
【META-INF目录】
META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个api包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。而在OPhone平台上安装apk包时,应用管理器会按照同样的算法对包里的文件做校验,如果校验结果与META-INF下的内容不一致,系统就不会安装这个apk。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk 包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系 统的安全。
在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。