Android 源码

  • 下载源码:

//初始化仓库
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest android-6.0.1_r80


//清华大学镜像下载Android源码
 

//Android源码版本号列表
https://blog.csdn.net/u013005791/article/details/52228727

 

  • 编译

进入根目录

source build/envsetup.sh

lunch full-eng

make -j4

  • 在模拟器中运行

source build/envsetup.sh

lunch full-eng

make //如果没有编译,需要运行这一步,如果已编译,就不需要了

emulator

或者

emulator  -partition-size 1536  -system system.img -data userdata.img -ramdisk ramdisk.img

说明:emulator是在/working/android4.0/out/host/linux-x86/bin目录下的,也就是编译后生成的

  • 查看命令:

在源码目录下执行

$ . build/envsetup.sh (.后面有空格)

就多出一些命令:

- croot: Changes directory to the top of the tree.

- m: Makes from the top of the tree.

- mm: Builds all of the modules in the current directory.

- mmm: Builds all of the modules in the supplied directories.

- cgrep: Greps on all local C/C++ files.

- jgrep: Greps on all local Java files.

- resgrep: Greps on all local res/*.xml files.

- godir: Go to the directory containing a file.

可以加—help查看用法

  • 编译模块

android中的一个应用程序可以单独编译,编译后要重新生成system.img

可以使用mmm来编译指定目录的模块,如编译联系人:

$ mmm packages/apps/Contacts/

编完之后生成两个文件:

out/target/product/generic/data/app/ContactsTests. apk

out/target/product/generic/system/app/Contacts.apk

可以使用

$ make snod

重新生成system.img,再运行模拟器

 

  • 编译SDK

直接执行make是不包括make sdk的。make sdk用来生成SDK,这样,我们就可以用与源码同步的SDK来开发android了。

$ make sdk

  编译很慢。编译后生成的SDK存放在out/host/linux-x86/sdk/,此目录下有android-sdk_eng.xxx_linux- x86.zip和android-sdk_eng.xxx_linux-x86目录。android-sdk_eng.xxx_linux-x86就是 SDK目录

  实际上,当用mmm命令编译模块时,一样会把SDK的输出文件清除,因此,最好把android-sdk_eng.xxx_linux-x86移出来

  此后的应用开发,就在该SDK上进行,所以把7)对于~/.bashrc的修改注释掉,增加如下一行:

export PATH=${PATH}:~/android/out/host/linux-x86/sdk/andr oid-sdk_eng.xxx_linux-x86/tools

注意要把xxx换成真实的路径;

 

  • 参考

http://www.cnblogs.com/hoji-real/articles/2144892.html

http://www.dedecms.com/knowledge/servers/linux-bsd/2012/0822/12849.html

https://www.cnblogs.com/fishoneseaatblog/p/4058366.html

//清华源下载

https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

 

 

 

android版本与linux内核版本对应关系

https://blog.csdn.net/ly890700/article/details/75040704

Android Version    |API Level  |Linux Kernel in AOSP
----------------------------------------------------
1.5   Cupcake      |3          |2.6.27
1.6   Donut        |4          |2.6.29
2.0/1 Eclair       |5-7        |2.6.29
2.2.x Froyo        |8          |2.6.32
2.3.x Gingerbread  |9, 10      |2.6.35
3.x.x Honeycomb    |11-13      |2.6.36
4.0.x Ice Cream San|14, 15     |3.0.1
4.1.x Jelly Bean   |16         |3.0.31
4.2.x Jelly Bean   |17         |3.4.0
4.3   Jelly Bean   |18         |3.4.39
4.4   Kit Kat      |19, 20     |3.10
5.x   Lollipop     |21, 22     |3.16.1
6.0   Marshmallow  |23         |3.18.10
7.0   Nougat       |24         |4.4.1
7.1   Nougat       |25         |4.4.1 (To be updated)
 

android kernel goldfish 3.4.0 编译

https://blog.csdn.net/jason_198724/article/details/39805409

 

repo sync 失败后重启

 

#!/bin/sh
repo sync -j4
while [ $? -ne 0 ]
do
repo sync -j4
done

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值