概述
注意要确定安装了jdk)
第一步: cd lichee; ./build.sh -p sun5i_elite -k 3.0 (apt-get install uboot-mkimage需要安装mkimage工具)
1)打开build.sh脚本发现脚本中只有“buildroot/scripts/common.sh $@”此一句话;其中$@接受所有输入参数
2)继续打开 (vim) buildroot/scripts/common.sh脚本 阅读代码知编译linux-3.0内核和bootloader源码生成 内核镜像, uboot和文件系统等;并且copy到out/android目录
out/
├── android├── bImage
├── lib
├── toolchain
├── uImage
│── zImage
│── u-boot.bin
│── sun5i_rootfs.cpio.gz
几种linux内核文件的区别:
1、vmlinux 编译出来的最原始的内核文件,未压缩。
2、zImage 是vmlinux经过gzip压缩后的文件。
3、bzImage bz表示“big zImage”,不是用bzip2压缩的。两者的不同之处在于,zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么采用zImage或bzImage都行,如果比较大应该用bzImage。
4、uImage U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的tag。
5、vmlinuz 是bzImage/zImage文件的拷贝或指向bzImage/zImage的链接。
6、initrd 是“initial ramdisk”的简写。一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态
第二步: cd android; source build/envsetup.sh
这个命令是用来将envsetup.sh里的所有用到的命令加载到环境变量里去,我们来分析下它。
第三步: root@QinQi:/work/shenbao-new/wifi_DDR128X16_shenbao/android# lunch
(#lunch命令是envsetup.sh里定义的一个命令,用来让用户选择编译项,来定义Product和编译过程中用到的全局变量。)
You're building on Linux
Lunch menu... pick a combo:
1. full-eng
2. full_x86-eng
3. vbox_x86-eng
4. full_stingray-userdebug
5. full_wingray-userdebug
6. full_crespo4g-userdebug
7. full_crespo-userdebug
8. full_maguro-userdebug
9. full_toro-userdebug
10. full_tuna-userdebug
11. apollo_mele-eng
12. apollo_tvdevb-eng
13. crane_evb_v12r-eng
14. crane_evb-eng
15. crane_m1003h6-eng
16. elite_evb-eng
17. elite_nm307_v11-eng
18. elite_nm307-eng
19. nuclear_12_evb-eng
20. nuclear_evb-eng
21. full_panda-eng
Which would you like? [full-eng] 17
第四步:android# extract-bsp
extract-bsp 是一个脚本函数,在 device/softwinner/common/vendorsetup.sh 他也是在 lunch 的时候被执行的,也就是说如果先不执行 lunch ,extract-bsp 是无效的
经行分析 extract-bsp 脚本 发现,其实就是将 lichee 编译的结果输出到 device/softwinner/vendor 目录下,其实这个过程是为了 android的编译在做准备。
第五步:make
执行make命令的结果就是去执行当前目录下的Makefile文件,我们来看下它的内容:
### DO NOT EDIT THIS FILE ###
include build/core/main.mk
### DO NOT EDIT THIS FILE ###
我们再看下build/core/main.mk
main.mk文件里虽然脚本不多,但是却定义了整个Android的编译关系,它主要引入了下列几个重要的mk文件:
49 include $(BUILD_SYSTEM)/config.mk
55 include $(BUILD_SYSTEM)/cleanbuild.mk
142 include $(BUILD_SYSTEM)/definitions.mk
全志Android SDK编译详解(一)
1.编译环境说明 Linux 服务器(任意电脑都可以,建议选择配置高的)安装ubuntu 10.04 作为编译的主机,其他开发者在xp 下,通过SSH/Telent 等协议登录linux 主机进行编. ...
Android SDK Manager详解
Android基础知识——Android SDK Manager详解 做Android开发时,免不了使用Android SDK Manager,安装需要的sdk版本.buildTools版本等等. ...
Android Studio 插件开发详解二:工具类
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112856 本文出自[赵彦军的博客] 在插件开发过程中,我们按照开发一个正式的项 ...
Android SDK 目录详解(转)
Android SDK目录结构和工具介绍是本文要介绍的内容,主要是来了解并学习Android SDK的内容,具体关于Android SDK内容的详解来看本文. Android SDK目录下有很多文件夹 ...
Android Widget 开发详解(二) +支持listView滑动的widget
转载请标明出处:http://blog.csdn.net/sk719887916/article/details/47027263 不少开发项目中都会有widget功能,别小瞧了它,他也是androi ...
Android WebView 开发详解(二)
转载请注明出处 http://blog.csdn.net/typename/article/details/39495409 powered by miechal zhao 概览: Androi ...
Android Studio 插件开发详解四:填坑
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自[赵彦军的博客] 在前面我介绍了插件开发的基本流程 [And ...
Android Studio 插件开发详解三:翻译插件实战
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78113868 本文出自[赵彦军的博客] 一:概述 如果不了解插件开发基础的同学可以 ...
Android Studio 插件开发详解一:入门练手
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112003 本文出自[赵彦军的博客] 一:概述 相信大家在使用Android S ...
随机推荐
Android studio git 本地仓库和远程仓库节点对比
1.初始状态 2.本地修改文件,然后commit 3.本地再次修改文件,然后commit 4.本地push 从上图可以看出,push完成后,本地仓库的节点和远程仓库的节点是一样的.
How to delete expired archive log files using rman?
he following commands will helpful to delete the expired archive log files using Oracle Recovery Man ...
cf111D Petya and Coloring 组合数学,二项式反演
http://codeforces.com/contest/111/problem/D Little Petya loves counting. He wants to count the numbe ...
【hdu2815-Mod Tree】高次同余方程-拓展BadyStepGaintStep
http://acm.hdu.edu.cn/showproblem.php?pid=2815 题意:裸题... 关于拓展BSGS的详细解释我写了一篇博文:http://www.cnblogs.com/ ...
codeforces 630F Selection of Personnel(组合数)
F. Selection of Personnel time limit per test 0.5 seconds memory limit per test 64 megabytes input s ...
php install extension
wget http://nginx.org/download/nginx-1.8.0.tar.gz wget http://nginx.org/download/nginx-1.8.0.tar.gz ...
DOM艺术基础练习
每个月对于学习的JAVASCRIPT进行总结,加油 主要应用知识点 :
C++中的字符串的输入输出函数、空字符与空格的区别、字符变量赋值和字符串初始化
一.字符串输入输出函数 1. cin.get() 逐个字符输入输出 2. cin 可以将整个字符串一次性输入,但是,cin将空格.Tab和回车键,因此不能用于数组的一次性输入. 注意:ci ...
【转】CocoaPods的使用教程
转载自:https://www.jianshu.com/p/dfe970588f95 前言 前几天发布我的开源库到CocoaPods的 ...
【Ruby】【遇到的问题】
1 Error fetching https://gems.ruby-china.org/: certificate verify failed (https://gems.ruby-china.or ...
最后
以上就是贪玩小懒猪为你收集整理的全志 android 编译,全志Android SDK编译详解(二)的全部内容,希望文章能够帮你解决全志 android 编译,全志Android SDK编译详解(二)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复