Android编译版本: PLATFORM_VERSION=4.0.1(最新Android 4.0.1)
Android 系统架构分为五层 从上到下依次为应用层、应用框架层、系统运行库层、硬件抽象层与Linux内核层。
Android的系统架构采用了分层架构的思想,如图。从上层到底层共包括四层: 1.应用层 2.应用框架层 3.系统库和Android虚拟机 4.Linux内核
在Cmd下指令 管理设备 adb devices 显示连接到计算机的设备
android create avd –name 名称 –target 平台编号
Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。
在android开发中,有时候需要将文件从pc端传递至android,或者将软件运行的日志,从android设备传递到pc进行分析,我们可以使用windows的cmd窗口,或者android studio的terminal窗口来传递文件。
Android is a software stack for mobile devices that includes an operating system, middleware and key applications.
本教程主要内容有:Android系统文件夹结构解析、应用软件说明、定制精简、ROM签名把包等内容。本教程测试平台为HTC G2、G3这两个型号,其它机型可以借鉴,刷机有风险,出问题自负。其实这个教程一早就想写的,但由于时间及本人的懒惰,一直拖着。今晚终于静下心来写好本文,本文有部份内容来自于网络。 速度与华丽,你喜欢那个。是不是想要一个又够速度又华丽的ROM呢?我是一个追求新鲜的人,对于手机的ROM,我又追求稳定、精简、美观、省电。现在Hero ROM有很多,最新的有第三方Android 2.1版本,但这些ROM的制作者都会跟据自已的个人喜欢会增加和增少相应的功能或是界面,但我们往往不喜欢这些ROM的某些小方面,所以随着而来面对的问题就是怎样把这个ROM修改成为一个自已真正需要的ROM呢?以往一直是依靠“大杀器”来解决,但觉得还是过于麻烦,所以寻求办法自己动手修改ROM。于是有了本文。废话少说,进入正题。 一、Android系统文件夹结构 一个完整的ROM根目录会有以下几个文件夹及文件: data META-IN 2)用户安装应用程序所在目录 /data/app/*.apk 注意: 在模拟器中,每重启一次,/system/app/下的应用都会被还原,有时/data/app下也会被清除 3. SD卡对应目录 /sdcard/ 而我们需要处理的只是两个文件夹里面的内容: data/app –该文本夹里的文件可以全删,也可以自由添加自已所需安装的应用软件,刷机安装后可以自由删除。 system/app –在这个文件夹下的程序为系统默认的组件,可以看到都是以APK格式结尾的文件,但有些自制的ROM里面还有和APK文件名对应的odex文件。我们主要是针对该文件夹里的文件进行精简,如果有odex文件的,删除APK文件名时同时也删除与其对应的odex文件。\system\app\GoogleSearch.apk 搜索工具 \system\app\gtalkservice.apk GTalk服务 \system\app\HTMLViewer.apk HTML查看器 \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\TelephonyProvider.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 % Zl_{Q]h 这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件,Android手机网就主要文件做下简单的分析介绍: \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 d\system\bin\logcat Logcat日志打印 \system\bin\logwrapper \system\b
继上一期浅谈了Android的前世今生,这一期一起来大致回顾一下Android 系统架构和应用组件。 Android 系统架构 Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件4层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建。这种软件叠层结构使得层与层之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无须任何改变。 Android的系统架构和其他操作系
\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\SettingsProvi
2023年02月04日午夜,在搜索中文可视化编程IDE时无意中发现了B4X的官网:跨平台 RAD 开发工具 |B4X。
android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator加载这3个映像文件后,会把 system和 userdata分别加载到 ramdisk文件系统中的system和 userdata目录下。因此,我们可以把ramdisk.img里的所有文件复制出来,system.img和userdata.img分别解压到 ramdisk文件系统中的system和 userdata目录下。 2、分离android文件系统出来 system.img,ramdisk.img,userdata.img映像文件是采用cpio打包、gzip压缩的,可以通过file命令验证: file ramdisk.img,输出: ramdisk.img: gzip compressed data, from Unix, last modified: Wed Mar 18 17:16:10 2009 Android源码编译后除了生成system.img,userdata.img之外还生成system和 userdata文件夹,因此不需要解压它们。Android源码编译后还生成root文件夹,其实root下的文件与 ramdisk.img 里的文件是一样的,不过这里还是介绍怎样把 ramdisk.img解压出来: 将ramdisk.img复制一份到任何其他目录下,将其名称改为ramdisk.img.gz,并使用命令 gunzip ramdisk.img.gz 然后新建一个文件夹,叫ramdisk吧,进入,输入命令 cpio -i -F ../ramdisk.img 这下,你就能看见并操作ramdisk里面的内容了。 然后把Android源码编译后生成的system和 userdata里的文件复制到 ramdisk/system和 ramdisk/userdata下。这样就得到一个文件系统了。 3、使用网络文件系统方式挂载android文件系统 因此,我们需要建立/nfsroot目录,再建立/nfsroot/androidfs目录,把刚才的android文件系统改名为androidfs,并链接到/nfsroot/androidfs 4、android内核引导文件系统 android内核挂载/nfsroot/androidfs之后,根据init.rc,init.goldfish.rc来初始化并装载系统库、程序等直到开机完成。init.rc脚本包括了文件系统初始化、装载的许多过程。init.rc的工作主要是: 1)设置一些环境变量 2)创建system、sdcard、data、cache等目录 3)把一些文件系统mount到一些目录去,如,mount tmpfs tmpfs /sqlite_stmt_journals 4)设置一些文件的用户群组、权限 5)设置一些线程参数 6)设置TCP缓存大小 5、操作android的一些方法 您应该已经知道,Android 的核心作业系统是Linux (现在用的版本是2.6.25)。因此内部的档案系统,与系统目录等,也和Linux 脱不了关系。要如何观察这些系统目录,到底藏了什么秘密呢? 在Eclipse 环境中,你可以用DDMS 来观察。不过这个DDMS 在我的电脑上的执行速度,实在太慢了。我个人的偏好是,直接用adb shell 来观察。 启动adb shell 的用法如下: 1). 在Windows 中,开启一个命令列视窗(或执行cmd.exe 这个程式) 2). cd <android-sdk-install_path>/tools 3). adb shell 当你看到这个# 提示字元时,就表示你已经进入模拟器的系统。接下来,你就可以用Linux 上的指令来浏览这些目录。像是 cd, ls, pwd, cat, rm 等等。 这里面,有几个目录是和Android 相关的,特地将他整理下来,供你参考。
adb的工作方式比较特殊采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。 1.通过adb可以轻松的执行Linux Shell命令,如adb shell dir 就是列举目录,在Linux中根目录为/而不是Windows上的C盘、D盘。 2.安装apk程序到模拟器则执行adb install android123.apk,这样名为android123的安装包就会安装到Android模拟器中,前提是android123.apk文件需要放到SDK/Tools目录下。 3.向emulator传送文件, 使用adb push android123.txt /tmp/android123.txt命令可以把SDK/Tools下的android123.txt文件传输到模拟器的/tmp/文件夹中,需要注意的是/tmp/文件夹中内容会在Android模拟器重新启动时清空。 4.从Android仿真器中回传文件到电脑
Linux2.6内核层,核心库层,应用框架层,应用层。我今天重点介绍一下应用框架层Framework。
一、下载一个ZIP格式的ROM解压,一个ROM的结构其实以CM7官方为例,很简单如下
小弟写得差 请勿拍砖,如果有意见请直接回复本贴!谢谢! 技术有限,部分可能不详细或者错误的请各位指出,大家交流!
领取专属 10元无门槛券
手把手带您无忧上云