×
单片机 > 单片机程序设计 > 详情

Tiny4412_Android编译步骤

发布时间:2020-06-18 发布时间:
|

前言: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 源码了.


关键字:Tiny4412  Android  编译步骤 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析