Android底层开发
1.安装Ubuntu系统
2.Ubuntu配置开发环境:
sudo apt-get install git-core gnupg flex bison gperf zip
sudo apt-get install curl libc6-dev-i386 lib32ncurses5-dev
sudo apt-get install lib32readline-gplv2-dev lib32z-dev
3.配置Java JDK:
http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
下载jdk-6u45-linux-x64.bin并安装jdk
4.Ubuntu配置环境变量:
export JAVA_HOME=/home/hyg/jdk/jdk1.6.0_45/
export PATH=$JAVA_HOME/bin:$PATH
export classPath=$JAVA_HOME
5.源代码:
boot和kernel:
lichee.tar.gz
Android:
android.tar.bz2.aa
android.tar.bz2.ab
android.tar.bz2.ac
android.tar.bz2.ad
6.源代码编译:
1:解压源码
tar zxvf lichee.tar.gz
cat android.tar.bz2.a* | tar xj
2:编译Boot和内核
3:编译Android
7.目录:
bionic C库
build 编译系统规则基础开发包配置
cts 兼容性测试
dalvik java 虚拟机
external Android引入的第三方模块
frameworks Android核心框架
hardware 硬件适配层
system 底层文件系统库,应用和组建
deivce 产品目标目录
out 编程生成目标文件目录
8.Android编译过程:
初始化参数设置
检查环境变量与目标环境
选择lunch并读取目标配置和平台信息
清空输出目录
编译
生成升级包
9.touch命令,tree命令,
10.Android 启动模式
1. recovery 升级模式:启动recovery分区内核和文件系统
2.正常启动模式:引导内核和启动Android系统
11.android升级模式:
1.差量包升级(部分升级)
2.全包升级
12,init启动分析
init进程源码位置:system/core/init/init.c
init系统中位置:/init
adb devices:查看链接的开发板
adb shell:登录开发板
ls -l:查看文件的详细信息,里面有一个init文件,是init.c生成的可执行文件,也是系统所要启动的一个应用程序,就是我们的守护进程,
ps:查看当前系统中跑的所有的应用程序,init进程的PID是1,init进程用于创建所有的服务并且守护我们的整个系统,
init进程的作用:
1.第一个应用程序。2.创建目录,挂载分区。3.解析启动脚本,服务,操作,环境变量全部解析出来。4.启动服务 5.守护服务
查看init源代码路径:vi system/core/init/init.c
查找main函数:首先清除一些mark,解决后面创建文件时候的权限问题,然后在根目录下创建一些临时文件,然后挂载一些分区,
本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/6416894.html,如需转载请自行联系原作者