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,解决后面创建文件时候的权限问题,然后在根目录下创建一些临时文件,然后挂载一些分区,

android framework 02的更多相关文章

  1. Android framework编译出来的jar包classes.jar的位置

    在源码环境下编译 Android framework编译出来的jar包classes.jar的位置  out/target/common/obj/JAVA_LIBRARIES/framework_in ...

  2. 添加 Android Framework 到 Adt

    Android Framework jar 包: class4.0.3 1.项目属性中的-Java Build Path,选择 Libraries,点击 “Add Library...”,添加 2.选 ...

  3. 北京联想招聘-Android Framework高级工程师(7-10年) 加入qq 群:220486180 或者直接在此 留言咨询

    Job ID #: 45038 Position Title: Android Framework高级工程师 Location: CHN-Beijing Functional Area: Resear ...

  4. 如何调试Android Framework?

    Linus有一句名言广为人知:Read the fucking source code. 但其实,要深入理解某个软件.框架或者系统的工作原理,仅仅「看」代码是远远不够的.就拿Android Frame ...

  5. 解析android framework下利用app_process来调用java写的命令及示例

    解析android framework下利用app_process来调用java写的命令及示例 在android SDK的framework/base/cmds目录下了,有不少目录,这些目的最终都是b ...

  6. Android Framework 初探

    最近工作任务不忙,学习一下Android Framework方面的知识. 一.介绍,是什么 Android的Framework是直接应用之下的一层,叫做应用程序框架层.这一层是核心应用程序所使用的AP ...

  7. [Android FrameWork 6.0源码学习] View的重绘过程之WindowManager的addView方法

    博客首页:http://www.cnblogs.com/kezhuang/p/关于Activity的contentView的构建过程,我在我的博客中已经分析过了,不了解的可以去看一下<[Andr ...

  8. [Android][Framework] 添加系统服务

    新博客地址 http://wossoneri.github.io/2018/09/15/[Android][Framework]create-system-service/ 做系统开发,有时候需要自己 ...

  9. [Android][Framework]裁剪SystemServer服务以及关闭SystemFeature

    本文链接 http://wossoneri.github.io/2018/08/30/[Android][Framework]crop-SystemServer-and-SystemFeature/ ...

随机推荐

  1. rest_framework-版本-总结完结篇

    总urls.py from django.conf.urls import url, include urlpatterns = [ url(r'^api/', include('api.urls') ...

  2. <Sicily>Fibonacci

    一.题目描述 In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn-1 + Fn-2 for n ≥ 2. For exampl ...

  3. ipad mini2 升级9.0.2后解锁白屏解决

    解锁白屏是个什么现象?就是当你用手指滑动解锁后出现输入密码的界面后,1秒之内屏幕变白,中间一个黑色的苹果,几秒之后重新回到滑动解锁的界面.我出现这个现象不是因为升级了9.0.2,而是升级了9.0.2之 ...

  4. 把ISO文件当作光盘挂载

    当不能挂载光盘或者U盘时候,只需要把ISO文件传到某个目录中,比如/data下,即可挂载,如下所示:   mount -o loop /data/rhel-server-6.3-x86_64-dvd. ...

  5. Python3基础笔记--装饰器

    装饰器是十二分重要的高级函数. 参考博客:装饰器 所需前提知识: 1.作用域: LEGB 2.高阶函数 高阶函数是至少满足下列一个条件的函数: 1)接受一个或多个函数作为输入 2)输出一个函数 注意理 ...

  6. PHP取不定个数数组交集

    最近有个需求,有一个N个二维数组,N是动态的,不固定个数,现需取这N个数组的交集内容. 用到的函数是array_intersect_assoc 用法 $result_arr = array_inter ...

  7. 洛谷 P1096 Hanoi双塔问题

    P1096 Hanoi双塔问题 题目描述 给定A.B.C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情 ...

  8. UVa 11085 - Back to the 8-Queens

    题目:给你一个棋盘上的八个皇后.每行一个.如今让他们互相不攻击,每一个皇后仅仅能竖着移动, 一次能够移动到本列的不论什么位置,问最少移动几步.能满足要求. 分析:搜索,八皇后.由于八皇后仅仅有92组解 ...

  9. Effective C++ Item 30 inline里里外外

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie Item 44 46 1.将大多数 inlining 限制在小型.被频繁调用的函数身上.这可 ...

  10. vue12 循环添加重复数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...