android framework 02
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的更多相关文章
- Android framework编译出来的jar包classes.jar的位置
在源码环境下编译 Android framework编译出来的jar包classes.jar的位置 out/target/common/obj/JAVA_LIBRARIES/framework_in ...
- 添加 Android Framework 到 Adt
Android Framework jar 包: class4.0.3 1.项目属性中的-Java Build Path,选择 Libraries,点击 “Add Library...”,添加 2.选 ...
- 北京联想招聘-Android Framework高级工程师(7-10年) 加入qq 群:220486180 或者直接在此 留言咨询
Job ID #: 45038 Position Title: Android Framework高级工程师 Location: CHN-Beijing Functional Area: Resear ...
- 如何调试Android Framework?
Linus有一句名言广为人知:Read the fucking source code. 但其实,要深入理解某个软件.框架或者系统的工作原理,仅仅「看」代码是远远不够的.就拿Android Frame ...
- 解析android framework下利用app_process来调用java写的命令及示例
解析android framework下利用app_process来调用java写的命令及示例 在android SDK的framework/base/cmds目录下了,有不少目录,这些目的最终都是b ...
- Android Framework 初探
最近工作任务不忙,学习一下Android Framework方面的知识. 一.介绍,是什么 Android的Framework是直接应用之下的一层,叫做应用程序框架层.这一层是核心应用程序所使用的AP ...
- [Android FrameWork 6.0源码学习] View的重绘过程之WindowManager的addView方法
博客首页:http://www.cnblogs.com/kezhuang/p/关于Activity的contentView的构建过程,我在我的博客中已经分析过了,不了解的可以去看一下<[Andr ...
- [Android][Framework] 添加系统服务
新博客地址 http://wossoneri.github.io/2018/09/15/[Android][Framework]create-system-service/ 做系统开发,有时候需要自己 ...
- [Android][Framework]裁剪SystemServer服务以及关闭SystemFeature
本文链接 http://wossoneri.github.io/2018/08/30/[Android][Framework]crop-SystemServer-and-SystemFeature/ ...
随机推荐
- Car Talk2
#! /usr/bin/python # -*- coding: utf-8 -*- # # # “Recently I had a visit with my mom and we realized ...
- 131.lambda表达式小结
C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作.Lambda的语法形式如下:[函数对象参数](操作符重载函数参数) mutable或exception声明->返回 ...
- BZOJ 4448 主席树+树链剖分(在线)
为什么题解都是离线的-- (抄都没法抄) 搞一棵主席树 1 操作 新树上的当前节点设成1 2 操作 查max(i-xx-1,0)那棵树上这条路径上有多少个点是1 让你找经过了多少个点 查的时候用dee ...
- POJ 3667 线段树+标记
自从某次考试写线段树写挂了以后 这是第一次写线段树,,,,,, 这是一个伤心的故事-- 题意: 思路: 标记 维护从左到右的最大值 从右到左的最大值 区间内的最大值-- 然后就一搞 就出来了 //By ...
- SVN在vs2013中使用
http://download.csdn.net/download/show_594/9112963 内包含VisualSVN 5.0.1的官方原版安装包及破解文件VisualSVN.Core.L.d ...
- pyton写购物车
pyton写购物车 基本要求: 用户输入工资,然后打印购物菜单用户可以不断的购买商品,直到余额不够为止退出时打印用户已购买的商品和剩余金额.. 1.这个程序功能不完整,bug很多,练手之作. good ...
- 洛谷 P3804 【模板】后缀自动机 统计单词出现次数
后缀自动机模板题. 关键时求解每个节点的 $right$ 大小. 由于后缀自动机在构建时会保证点和点的 $right$ 只可能没有交集,或者一个是另一个的真子集,我们可以不重复的对 $right$ 进 ...
- Centos安装masscan
1.yum install git gcc make libpcap-devel2.git clone https://github.com/robertdavidgraham/masscan3.cd ...
- Bash 基础特性
命令别名 alias 显示当前shell中定义的所有别名 alias 别名='原始命令' unalias 别名 取消定义的别名在命令前加\使用命令本身,而不是别名(或者使用绝对路径执行命令使用命 ...
- token登录验证机制
一张图解释 token登录验证机制