微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 芯灵思开发板安卓底层开发学习经验第二期

芯灵思开发板安卓底层开发学习经验第二期

时间:10-02 整理:3721RD 点击:

最近在学习安卓,我所使用的是芯灵思的开发板,核心板是全志的A31S,感觉性能挺好,而且老板还给了很多的资料,而且还带学习的视频,下面是我在学习完第二期之后的一个经验,希望能跟大家分享一下,也希望各位大神能多多的帮助小弟,小弟在此谢过了。有兴趣的朋友可以去芯灵思网站看一下。

这一期呢主要讲的就是安卓开发前的一些环境搭建,首先是有一台Ubuntu的pc机,然后是相关命令的安装,及源码的下载编译,和源码目录的介绍

[size=10.5000pt]一、Ubuntu的安装

Ubuntu的安装其实就是一个系统的安装,自己只需要去Ubuntu的官网下载一个Ubuntu的iso镜像,然后按照官方的文档进行安装就行了,安装完之后呢我们需要用Ubuntu的sudo apt-get install命令来安装一些工具和库文件(如下图),这些是安卓进行编译所必须的



安装完这些就可以进行JDK的安装了

[size=10.5000pt]二、配置java JDK

首先呢我们需要在Java的官网去下载JDK



我们安卓所依赖的JDK是6U45的版本,我们可以在右上角进行搜索Java SE6 Downloads(如下图)



进入之后向下找,一直找到下边这张图,点击Accept License Agreement然后下载第四个jdk-6u45-linux-x64.bin文件,放到linux系统中


然后使用xftp放到Ubuntu系统下,直接把jdk-6u45-linux-x64.bin文件拖到jdk文件中



然后进入Linux系统中登录编译服务器,然后进入jdk目录,里边会有我们下载的jdk-6u45-linux-x64.bin这个文件,然后我们需要给他加上一个可执行的权限,加完以后我们来执行一个这个.bin文件,然后等待完成。



然后我们可以看到里面会多一个jdk1.6.0_45的文件,然后我们进入这个jdk1.6.0_45目录的bin文件,然后我们来执行这里的java执行程序,这时我们就会看到我们编译安卓所需要的java jdk的版本为1.6.0-45



然后我们需要配置我们的环境变量

进入工作目录下,修改我们的bashrc文件



在最后加上我们的环境变量





我们只有source完我们的bashrc之后才可以找到我们的java,否则是找不到的

最后我们可以看一下java的version是1.6.0-45,路径也是我们所安装的目录,这样我们的环境就配置完成了



[size=10.5000pt]三、源代码

源代码分为两部分,第一部分是boot和kernel,代码是lichee.tar.gz

第二部分是Android 代码分为四个包分别是android.tar.bz2.aa   android.tar.bz2.ab  android.tar.bz2.ac   android.tar.bz2.ad  四个包

对源代码进行编译

[size=10.5000pt]1.解压源代码 :解压boot和kernel用的是tar zxvf lichee.tar.gz

解压Android用的是cat android.tar.bz2.a*|tar xj这样就能将Android打到一个文件夹下

我们可以在Linux下来看一下我们的源码可以看到里边有Android.tar.bz2.aa 、ab、 ac、 ad和lichee.tar.gz,我们可以使用这些来进行解压,解压完之后我们进入内核的目录,可以看到这里有一个脚本build.sh



我们来进入这个脚本内看一下,里边列出了编译的脚本,boot版本呢里边列出了两个版本,一个2.0,一个1.0,我们可以看一下当前目录是1.0的版本,而我们所使用的是芯灵思A31S的开发板所以我们选择第二条命令来编译我们的boot和内核,编译完之后会在out目录下生成相关的文件uImage和zImage



接下来我们再看一下安卓的目录,把包解压完之后就会生成一个android4.4的目录,然后进入这个目录来看一下,这里有安卓源代码每一个模块的路径

然后我们来编译我们的安卓,我们所使用的是 .build/envsetup.sh


然后选择lunch



Lunch的选择仍然是fiber_a31st-eng或者是fiber_a31st-user



这样环境变量就配置完了

Lunch配置完之后我们可以使用开发板配套的脚本把boot和内核拷到我们所指定的目录下,这个脚本是系统写好的



完成之后我们就可以做编译了,我们使用make -j16(四核的话我们选择16或者8这样会快一些) 我已经编译过了,这个时间长太长就不演示了

编译完之后就会在当前目录下生成out目录



打开这个目录out/target/product/fiber-a31st/ 这里就是我们编译生成的库、二进制和image文件,当我们这个编译生成完之后,就可以使用脚本打一个包,这个包就是我们开发板的烧录包,我们所使用的是pack来进行打包的,完成之后我们可以使用和开发板配套的工具来进行烧录,然后重启一下

开发环境的配置,源代码的编译以及打包过程就是这些了

[size=10.5000pt]四、安卓源代码的目录结构和功能



上面呢就是我在第二期视频上学到的一些东西,希望对想学安卓的朋友有一定的帮助。


太难了,接受不了

这有什么难的,按步骤一步一步来挺好的,应该对自己有信心

哥们你也是做网络机盒

谢谢分享啦,收藏以后看

到时学Android的时候跟小编多交流一下

不是啊,做安卓的

好哒,没问题,互相学习嘛

http://bbs.elecfans.com/try.php?mod=userpoll&id=11
4412开发板的投票,有空支持一下

谢谢分享谢谢分享谢谢分享
      谢谢分享谢谢分享                       谢谢分享
      谢谢分享谢谢分享                谢谢分享         
            谢谢分享              谢谢分享谢谢分享谢谢分享
            谢谢分享              谢谢分享        谢                谢
            谢谢分享              谢谢分享        谢                谢
            谢谢分享              谢谢分享        分                分
            谢谢分享              谢谢分享        享                享
            谢谢分享              谢谢分享        谢                谢
            谢谢分享              谢谢分享        谢                谢
谢        谢谢分享               谢谢分享       分                分
谢谢     谢谢分享              谢谢分享        享                享
谢谢分 谢谢分享              谢谢分享        谢                谢
谢谢分 谢谢分享                               谢       谢
谢谢分谢谢分享                         谢                 谢
        谢谢谢谢                    分                               分

小编你是做安卓底层,编译环境你是怎么搭建?

这一期讲的就是编译环境的搭建啊,如果还有不明白的,或者哪里不会可以去sinlinx板块问小编,他会帮你解答的
http://bbs.elecfans.com/zhuti_sinlinx_1.html

请问你安装的是Ubuntu几的系统?我编译内核的时候一直出错,
./gen_check_code: 1: Syntax error: end of file unexpected (expecting ")")
make: *** [resume1] Error 2
make: Leaving directory `/home/tang123/source/lichee/linux-3.3/arch/arm/mach-sun6i/pm/standby'
能告诉我解决方法吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top