注意要确定安装了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编译详解(二)相关推荐

  1. 安卓 linux init.rc,[原创]Android init.rc文件解析过程详解(二)

    Android init.rc文件解析过程详解(二) 3.parse_new_section代码如下: void parse_new_section(struct parse_state *state ...

  2. Android init.rc文件解析过程详解(二)

    Android init.rc文件解析过程详解(二) 3.parse_new_section代码如下: void parse_new_section(struct parse_state *state ...

  3. flutter 获取android 还是ios_Flutter完整开发实战详解(二十、 Android PlatformView 和键盘问题)...

    作为系列文章的第二十篇,本篇将结合官方的技术文档科普 Android 上 PlatformView 的实现逻辑,并且解释为什么在 Android 上 PlatformView 的键盘总是有问题. 为什 ...

  4. Android Jetpack组件之数据库Room详解(二)

    本文涉及Library的版本如下: androidx.room:room-runtime:2.1.0-alpha03 androidx.room:room-compiler:2.1.0-alpha03 ...

  5. 【Android Camera1】Camera1 Parameters参数详解(一)—— Size (preview/picture/thumbnail)

    1.简介 本篇文章将对Camera1和Size相关的参数,逐个进行详细解析.在Camera1源码分析文章里.已阐述过相关源码.并提供了读取和更新Parameters的2个方法如下: 读取Paramet ...

  6. android 支付宝sdk接入详解

    android 支付宝sdk接入详解 第一步 在接入支付宝sdk之前首先要进入支付宝开发者平台申请应用所需要的应用唯一标识(APPID).应用私钥(APP_PRIVATE_KEY).支付宝公钥(ALI ...

  7. android动态贴纸实现原理,人脸动态贴纸sdk算法详解,人脸动态贴纸功能如何实现...

    原标题:人脸动态贴纸sdk算法详解,人脸动态贴纸功能如何实现 泛娱乐行业在互联网领域中发展趋势逐渐增强,而直播.短视频.视频社交等作为头部产品受到了众多用户的关注和喜爱.为了能够更好的满足用户体验,众 ...

  8. Eclipse编译运行Native代码步骤详解

    Eclipse编译运行Native代码步骤详解 标签: android jni层   android jni步骤   android jni接口   转自: http://blog.csdn.net/ ...

  9. Android四大组件Service之AIDL详解

    Android四大组件Service之AIDL详解 前言 简介 基础知识 AIDL 服务端 定义AIDL文件规则 创建 .aidl 文件 清单注册 通过 IPC 传递对象 调用 IPC 方法 Andr ...

最新文章

  1. Spring入门介绍:
  2. 关于varchar2在pl/sql和schema级别的最大值
  3. js 调用webservice接口
  4. php7下新版Ueditor
  5. 0514JS练习:函数
  6. redis应用场景与最佳实践
  7. 跟我一起写 Makefile 上
  8. Web3D软件WebMax正式版发布
  9. django商城项目之历史浏览记录
  10. ug12无法连接服务器系统,NX许可证错误:无法连接至许可证服务器系统。SPLM_LICENSE_SERVER错误[-15]...
  11. 中文转拼音全拼和首字母
  12. 在 UltraEdit 或 UEStudio 中执行 DOS 或 Windows 命令
  13. 年老时最后悔但为时已晚的几件事
  14. ppt(office365)之起始页、目录页、结束页界面布局技巧
  15. 模拟退火算法系列之(二):一个实例
  16. 2016中欧绿色和智慧城市奖正式启动
  17. 东南大学信息科学工程学院在计算机,【东南大学计算机科学与工程学院】疑问咨询贴...
  18. Mirror for LG TV Mac破解教程
  19. Unity获取NoloVR手柄
  20. 银河麒麟系统远程服务器上传下载文件

热门文章

  1. IT人的学习方法论(全)
  2. 云计算的概念及介绍(通俗解释)
  3. 离散数学10:平面图与对偶图
  4. 普通程序员的出路是什么?
  5. Journal日志服务详解
  6. Unity3D动态创建地形网格(一)
  7. Clock Jitter
  8. MySQL select五个子句顺序及其快速记忆方法
  9. 投资组合 有效边界的求解 matlab,Markowitz投资组合有效边界的实现——基于Matlab的实例分析...
  10. 浙大计算机学院多厉害,一张图,就能告诉你浙大到底有多牛!