历史上的今天
今天是:2024年10月14日(星期一)
2018年10月14日 | Tiny4412_Android编译步骤
2018-10-14 来源:eefocus
前言:Android编译对PC机系统性能有要求,建议使用win7 64位操作系统,硬盘最小80GB剩余容量,否则编译Android源码会出现“No space left on device”。
1、搭建好的VMWare 虚拟机:
参考《韦东山Android系统视频使用手册20160303》文档说明,使用已经搭建好的VMWare 虚拟机映象文件,当然也可以参照文档自己安装ubuntu-12.04.5-64bit 系统。
2、设置ubuntu虚拟机的静态IP地址:
参考博文“Ubuntu9.10静态IP设置方法”、“设置ubuntu静态ip并联网”、“ifconfig 后看不到eth0,但是有eth3和eth4”设置ubuntu虚拟机的静态IP地址,然后用CRT即可登录虚拟机,用cuteftp在win之间传输文件;
参考:设置Ubuntu网络更新使用make menuconfig命令
参考:Tiny4412和PC传文件(含挂载NFS文件系统)方法
3、编译Android映像文件:
①准备工作:
目前只需要从网盘下载以下5 个文件:
Android-5.0.2.part1.rar
Android-5.0.2.part2.rar
Android-5.0.2.part3.rar
Android-5.0.2.part4.rar
linux-3.0.86-20150324.tgz
在Windows 下双击“Android-5.0.2.part1.rar”解压,得到android-5.0.2-fs-20150325.tar.gz,把它放到Ubuntu 的/work 目录下再次解压。
②在Ubuntu 下的解压内核并编译,命令为:
tar xzf linux-3.0.86-20150324.tgz
cd linux-3.0.86/
cp tiny4412_android_defconfig .config
make zImage
③在Ubuntu 下的解压Android 文件系统,命令为:
tar xzf android-5.0.2-fs-20150325.tar.gz
注意:在解压得到android-5.0.2 目录后,建议把android-5.0.2-fs-20150325.tar.gz 删掉以防空间不足。
④编译Android 系统
a.进入上述解压得到的android-5.0.2,执行以下命令(注意:“.”号后有一个空格):
. setenv
b.再执行“lunch”命令,输入“full_tiny4412-eng”前的数字标号,如下所示:
$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. full_tiny4412-userdebug
8. full_tiny4412-eng
9. aosp_mako-userdebug
10. aosp_hammerhead-userdebug
11. aosp_tilapia-userdebug
12. aosp_grouper-userdebug
13. aosp_deb-userdebug
14. full_fugu-userdebug
15. aosp_fugu-userdebug
16. aosp_flo-userdebug
17. aosp_shamu-userdebug
18. aosp_manta-userdebug
19. mini_emulator_mips-userdebug
20. mini_emulator_x86_64-userdebug
21. mini_emulator_arm64-userdebug
22. m_e_arm-userdebug
23. mini_emulator_x86-userdebug
Which would you like? [aosp_arm-eng] 8 //输入8,表示生成版本full_tiny4412-eng,tiny4412工程机
c.接着执行“make”命令开始编译,也可以在make 后加上“-j”参数利用CPU 的多核加快编译速度,比如在4 核CPU 上可以执行“make –j4”。
注意:编译过程可能持续4、5 个小时。
d.执行以下命令生成映象文件:
./gen-img.sh
注意:如果提示如下错误,要先编译u-boot 以得到mkimage 工具,方法见后。
./gen-img.sh: line 31: mkimage: command not found
编译u-boot 以得到mkimage 工具的方法:
tar xzf uboot_tiny4412-20130729.tgz
cd uboot_tiny4412/
make tiny4412_config
make
sudo cp tools/mkimage /usr/bin/
sudo chmod 777 /usr/bin/mkimage
运行结果:
book@book-virtual-machine:/work/tiny4412/android-5.0.2$ ./gen-img.sh
Creating filesystem with parameters:
Size: 629145600
Block size: 4096
Blocks per group: 32768
Inodes per group: 7680
Inode size: 256
Journal blocks: 2400
Label:
Blocks: 153600
Block groups: 5
Reserved block group size: 39
Created filesystem with 1943/38400 inodes and 137316/153600 blocks
Creating filesystem with parameters:
Size: 2149580800
Block size: 4096
Blocks per group: 32768
Inodes per group: 7728
Inode size: 256
Journal blocks: 8200
Label:
Blocks: 524800
Block groups: 17
Reserved block group size: 135
Created filesystem with 18/131376 inodes and 17347/524800 blocks
Creating filesystem with parameters:
Size: 4299161600
Block size: 4096
Blocks per group: 32768
Inodes per group: 7952
Inode size: 256
Journal blocks: 16400
Label:
Blocks: 1049600
Block groups: 33
Reserved block group size: 263
Created filesystem with 18/262416 inodes and 35067/1049600 blocks
Creating filesystem with parameters:
Size: 10485760000
Block size: 4096
Blocks per group: 32768
Inodes per group: 8112
Inode size: 256
Journal blocks: 32768
Label:
Blocks: 2560000
Block groups: 79
Reserved block group size: 631
Created filesystem with 18/640848 inodes and 78756/2560000 blocks
Image Name: ramdisk
Created: Mon Nov 14 10:40:26 2016
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 720530 Bytes = 703.64 kB = 0.69 MB
Load Address: 40800000
Entry Point: 40800000
即可生成ramdisk-u.img、system.img、userdata.img等映像文件。
⑤编译Android源码生成Android Studio所使用的索引文件:
a.进入Android 源码根目录执行:
mmm development/tools/idegen/
这行命令的意思是编译idegen这个项目,生成idegen.jar文件.生成成功后,会显示这个jar包的位置,并显示
#### make completed successfully (6 seconds) ####
注意:如果执行mmm命令出现“No command 'mmm' found”,则需要参考博文“No command 'mmm' found”解决,即使用m、mm、mmm命令之前要在android源码目录下执行命令:
. build/envsetup.sh
b.生成索引文件:
sh ./development/tools/idegen/idegen.sh
这行命令的意思是生成对应的文件:android.iws, android.ipr, android.iml .如果生成失败,后面也会讲到这种情况.
执行第二个命令的时候,碰到下面的问题:
Exception in thread "main"
at
at
at
at Configuration.parsePackageName(Configuration.
at Configuration.rootOf(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.(Configuration.
at Main.main(Main.
解决办法是将
./out/target/product/hammerhead/obj/GYP/shared_intermediates/res.java
修改为:
./out/target/product/hammerhead/obj/GYP/shared_intermediates/res.j
即可.
注意:参照Android源码目录并未找到该目录,查找以后发现目录已经变更为:
android-5.0.2/out/target/product/tiny4412/obj/GYP/shared_intermediates
于是执行以下命令:
sudo mv ./out/target/product/tiny4412/obj/GYP/shared_intermediates/res.java ./out/target/product/tiny4412/obj/GYP/shared_intermediates/res.j
再返回执行“b.生成索引文件”,得到:android.iml、android.ipr
⑥使用Android Studio查看Android源码:
生成对应的文件后,打开Android Studio,选择打开一个现有的Android Studio项目,选择Android源码的根目录,导入即可(起作用的是android.irp文件).在配置sdk版本之后就可以查看Android 源码了.
史海拾趣
|
我看中了两款开发板 TQ2440 和 mini2440 下面是链接 http://item.taobao.com/item.htm?id=3727179227 http://item.taobao.com/item.htm?id=2190406747 学习用,不知道这两款哪个更好一些 谁帮忙看下… 查看全部问答> |
|
最近读STM32手册定时器部分, The auto-reload register is preloaded. Writing to or reading from the auto-reload register accesses the preload register. The content of the preload register are transferred into the shadow regist ...… 查看全部问答> |
|
1、“综合测评”测试对象为赛区推荐上报全国评奖的优秀参赛队全体队员,并在各赛区以封闭方式进行。测试题目与评分标准由全国专家组负责统一制定,并委托各赛区在当地组织,赛区专家组完成相应测试工作。全国专家组将排遣专家参加综合测评。 2、 ...… 查看全部问答> |
|
我这个是用LaunchPad驱动HT1621B型芯片,从而达到控制段式液晶,至于段式液晶屏,一定是3V地。 有图有真象先上图先: 段显显示: 我是用线搭的,DATA、WR、CS、接P1的0、1、2、 上程序: 此程序 ...… 查看全部问答> |
|
小弟初学,按照教程步骤来的。 1,新建工程,file-new-project 2,加入文件,add to project-existing file 3,编译文件,compile-compile all 显示编译成功,compile of xxx.v is successful. 4,在library选项卡 ...… 查看全部问答> |




