重庆生活网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 生活 重庆
查看: 963|回复: 0
打印 上一主题 下一主题

安卓底层開发学习经验 第二期

[复制链接]
跳转到指定楼层
楼主
发表于 2020-3-25 19:57:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    最近在学习安卓,我所使用的是芯灵思的开发板,核心板是全志的A31S,感觉Ubuntu的安装其实就是一个系统的安装,自己只需要去Ubuntu的官网进入之后向下找,一直找到下边这张图,点击AcceptLicenseAgr然后进入Linux系统中登录编译服务器,然后进入jdk目录,里边会有我们然后我们可以看到里面会多一个jdk1.6.0_45的文件,然后我们进入这第二部分是Android代码分为四个包分别是android.tar.bz我们可以在Linux下来看一下我们的源码可以看到里边有Android.t我们来进入这个脚本内看一下,里边列出了编译的脚本,boot版本呢里边列出打开这个目录out/target/product/fiber-a31st




最近在学习安卓,我所使用的是芯灵思的开發板,核心板是全志的A31S,感觉性能挺好,而且老板还給了很多的资料,而且还带学习的視频,下面是我在学習完第二期之后的一个经验,希望能跟大家分享一下,也希望各位大神能多多的幫助小弟,小弟在此谢过了。这是芯灵思开发板的網站item.taobao.com/item.htm?spm=686.1000925.0.0.OsP6iu&id=38977486880
这一期呢主要讲的就是安卓开發前的一些环境搭建,首先是有一台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]四、安卓源代码的目录結構和功能

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|联系我们|重庆生活网

GMT+8, 2024-5-6 22:23 , Processed in 0.187500 second(s), 17 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表