electron android编译,Tiny4412_Android编译步骤

前言: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之间传输文件;

参考: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 源码了.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值