众所周知,安卓是基于linux内核的操作系统,某种程度上可以说安卓是linux的一个子集。所以安卓源代码的维护,修改,编译,都需要linux平台的支持。有很多用到的工具都无法在windows上找到合适替代,使得如果要进一步深入学习安卓的人,不得不把阵地转移到开放的linux平台。特别对于做安卓智能机的人来说,当然也对于那些不满对仅仅在安卓上开发一个小应用,小游戏,小打小闹的人来说,安装ubuntu并架构安卓平台开发,那是必须的。ubuntu从界面和使用上来说,确实可以算是一个很棒的系统,既使抛开安全性不谈,其界面的华丽性确实不差于win,据说在将来是要超越苹果的ios。这也许可能大概好像仿佛真不算梦想,毕竟他们都和linux有着那么一点或近或远的血缘关系,而且ubuntu也确实在易用上和界面上做了非常巨大的努力。
ubuntu是linux的一个很受欢迎的版本,而且在使用上并不像许多人想象的那么困难,再说他又是高效且安全的,虽然其安装配置过程对于普通人来说,无论是理解还是操作都具有一些挑战性。不过一旦装好了,使用起来感觉还是很爽的。Ubuntu的安装方法和过程方面的文章的很多。一般来说,对于没玩过linux的人来说,可以通过虚拟机来安装ubuntu,对于有一定操作经验的人,可以使用光盘根目录下的wubi.exe安装,他把ubuntu当作win下的一个程序,但在使用过程中,他几乎能和完全安装的体验差不多,如果对linux比较熟,对安装程序上网什么都很熟的人,直接安装到硬盘中,会使你的开发和使用效率高出很多。而从安装过程来说,你可以选择刻盘安装,也可以从硬盘直接安装,还可以用U盘模拟光盘安装,根据个人情况选择。我使用从硬盘直接安装,通过修改引导文件。这种方式的详细方法可以参考别人的文章http://www.ylmf.net/ubuntu/guide/201010297968.html;安装ubuntu,电脑还是要能上网的,不能上网,也许你只能装一个空系统了,安装过程需要注意点在于:
1硬盘安装引导成功进入ubuntu桌面时,一定要使用命令行sudoumount -l/isodevice去掉挂载,如果你找不到打开终端窗口地方,一般来说能在窗口上面应用程序的菜单附件中找到,如果找不到,使用ctrl+ALT+T也能打开。
2.在需要选择硬盘分区时选择手动分区,不手动当然也可以,不过要记得,ubuntu一定要装在单独的分区上,并且确认他能安装在他需要装的那个分区上,否则你就惨了,你的其他盘上的数据会被清空,而且你要冒着丢失分区的风险。我有几个同事,不是分区丢了就是数据丢了,很凄惨。而我在一次选择分区时,竟然把分区表误删了,弄了个diskgen才还原好,所幸磁盘所存文件一点没少。选择手动,一般来说,你需要创建两个分区,菜单里面可以选择,一个swap分区,相当于WIN的虚拟内存,参考大小相当于物理内存二倍。一个根分区,linux装在这个分区。需要更多分区的人可以在选择分区时可以自己根据安装程序提供的选项选择,只要有这两个分区就可以顺利安装了。
3.另一个需要注意的是在高级选项中不要漏了使用gurb引导,默认不安装。在输入了用户名,密码,准备安装前有一个提示窗口会删除什么分区,安装什么分区的提示,在那个提示窗口,下面有高级按钮,点开选中自己XP的位置,就行了。如果不选,安装成功后可能进不了xp.如果发生这种情况,可以在进入系统后,使用终端,执行一下sudo update-gurb,这时可以生成引导win的菜单。如果没有安装,可以使用sudoapt-get install grub,update-gurb搞了一下就好了。
4.如果是使用虚拟机或者wubi.exe安装,那么上面的问题你几乎都遇不到,当然你可能会遇到别的问题,自己百度解决。
ubuntu安装成功后,简单配置一下网络,输入法,只要能上网,能输出,就可以安装JDK。JAVA由于开源的原因,JDK的版本比较多,我们需要安装sun公司的原版JDK。网上有很多安JDK的文章,方法也大都是正确的,但由于文章写的比较早,JDK数据源已经更换或者其他什么的原因,也有本地网络的原因,比如防火墙等等,常常会导致下载安装不成功,需要对下载源或者下载网址做一些配置。这是很痛苦的经历,而安装其他软件,也会由于以上的原因不成功。所以配置一个安卓开发环境,绝对是耐心和信心的巨大考验。这里列出我使用的网站和方法。
sudo add-apt-repository "deb http://mirrors.163.com/ubuntu/jaunty main restricted universemultiverse"
sudo add-apt-repository "debdebhttp://mirrors.163.com/ubuntu/jaunty-updates main restricted universemultiverse"
sudo apt-get update
sudo apt-get install sun-java5-jdk
sudo apt-get install sun-java6-jdk
如果上面安装不行,使用下面的网址试试,总会有行的,每次使用完了add-apt-repository命令后,记着使用sudo apt-get update更新一下下载源再安装,安卓2.3以前的版本需要java5, and2.3和2.3之后的版本需要java6,需要注意的是,安装过程会在命令窗口弹出对话框,可以使用TAB切换到确定按钮确定。最后使用更新一下。
debhttp://cz.archive.Ubuntu.com/ubuntu hardy-updates main multiverse
上面使用命令行add-apt-repository来添加下载源,sudoapt-get install sun-java6-jdk来安装。当然也有别的方法,如果你不想输入那些网址,可以试试修改文件,使用下面方法
gksudo gedit /etc/apt/sources.list
在sources.list文件中添加网址,我觉得没有输入命令快捷,我是没有使用这种方式。
deb http://cz.archive.Ubuntu.com/ubuntu hardy-updates main multiverse
deb http://mirrors.163.com/ubuntu/jaunty main restricted universemultiverse
deb http://mirrors.163.com/ubuntu/jaunty-updates main restricted universemultiverse
安装完成后配置,使用gksudo gedit /etc/profile打开profile文件编辑,在其中添加下面内容
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
上面是把JAVA的可执行程序加入PATH变量,把库加入CLASSPATH路径,等号后的PATH一定不能省,否则会导致其他软件无法使用。需要注意的在于,/usr/lib/jvm/java-6-sun-1.6.0.24是JAVA安装的路径,你要确保你的JAVA是装在这里,并且名字和版本号也一样,不一样需要换成自已的。
然后是下载安装eclipse,我这里拷贝了一个以前下的,就不多说了,这个程序不需要安装,能够直接使用。不过依赖于JAVA,所以必须在JAVA安装后才能使用。eclipse下载解压以后,就可以进入启动。然后就是在eclipse里安装ADT和ADK,使用help菜单下的installnew software菜单,输入adt-http://dl-ssl.google.com/android/eclipse/下载ADT,这里由于网络配置不当,或者防火墙,服务器拒绝等原因,下载过程也是耐心的考验,有人说有时eclipse的版本不同也会导致不成功,不过我觉得似乎和版本无关,我使用的是indigo。如果你下载的不顺利,可以试试下面的方法。
修改以下文件,可以使下载过程更顺利。
gksudo gedit /etc/hosts
打开这个文件,在127.0.0.1 localhost下面添加以下内容
#Google主页
203.208.46.146www.google.com
#这行是为了方便打开Android开发官网现在好像不翻墙也可以打开
74.125.113.121developer.android.com
#更新的内容从以下地址下载
74.125.237.1dl.google.com
74.125.237.1 dl-ssl.google.com
eclipse和adk配置完好后,最好自己创建一个android项目试一下,能否完好运行模拟器,正常运行调试程序。上面的网址,可能会由于时效性的原因,比如原来服务器停用,下载源改换位置等原因。可能会在将来的某一天也下载不顺利,那就按上面方法,换换网址试试。或者使用浏览器把上面的网址输入进去,如果改换位置,一般该位置会有网页提示或者通知信息。
要使用android源码,需要安装git.可以从下面地址下载安装,wget http://git-core.googlecode.com/files/git-1.7.9.tar.gz,下载后安装使用
然后就可以下载android代码了。在需要安放代码的地方创建一个文件夹MTK6513或者其他名字,使用CD进入这个文件夹(如:mkdirmtk6513, cd mtk6513)。然后依次使用下面命令
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo"> repo
安卓代码由于数量庞大,所以使用脚本维护,repo就是其维护脚本。这句命令是从网上下载repo文件到本地目录。如是不成功,可能是curl没有装,使用命令安装
chmod a+x repo
更改repo的权限,下面是执行,repo前的./是执行文件的意思。
./repo init -u git://codeaurora.org/platform/manifest.git
执行完成功之后,执行下面的,如果不成功,试试改成http://codeaurora.org/platform/manifest.git
如果要下载模块,可以这样
./repoinit -u http://codeaurora.org/platform/manifest.git -b gingerbread
最后是下载代码
./repo sync
现在就可以等着代码下载完毕了,如果不是从google提取代码,可以把上面的git://codeaurora.org/platform/manifest.git改成自己公司的服务器地址就行,
如:
http://192.168.1.29/repo/hct-mtk/6513-v1.37/manifests.git
最后就是编绎代码:
编代码前使用下面指令检查编绎需要的软件是否齐备:
sudo apt-get install flex bison gperf build-essential curl zlib1g-devg++-multilib g++-4.4-multilib libc6-dev-i386 lib32ncurses5-devia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z1-devmingw32 tofrodos
- 使用下面的吧,上面的不知道为什么少了很多空格
- sudo apt-get install flex bison gperf build-essential curl zlib1g-dev g++-multilib g++-4.4-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z1-dev mingw32 tofrodos
如果不齐备,会自动安装,安装完全
使用下面命令编绎项目
./mk -t项目名new
如下:
./mk -t hct13_gb new
这是MTK的编绎,android不需要这么多,一个make就够了
文章是我这两天安装后的记忆写的,有些地方,实在记不清了,等这几天有空了再装一遍写个详细的。
如果你不晓得mk怎么使用,可以直接输入./mk,后面什么也不跟,就能看到他的帮助和用法。
Usage: (makeMtk|mk) [options] project actions [modules]Options:
-t, -tee : Print log information on the standard-out.
-o, -opt=bypass_argument_to_make
: Pass extra arguments to make.
-h, -help : Print this message and exit.
Projects:
one of available projects.
Actions:
listp, listproject
: List all available projects.
check-env : Check if build environment is ready.
check-dep : Check feature dependency.
n, new : Clean and perform a full build.
c, clean : Clean the immediate files(such as, objects, libraries etc.).
r, remake : Rebuild(target will be updated if any dependency updats).
bm_new : "new" + GNU make's "-k"(keep going when encounter error) feature.
bm_remake : "remake" + GNU make's "-k"(keep going when encounter error) feature.
mm : Build module through Android native command "mm"
emigen : Generate EMI setting source code.
nandgen : Generate supported NAND flash device list.
codegen : Generate trace DB(for META/Cather etc. tools used).
drvgen : Generate driver customization source.
custgen : Generate customization source.
javaoptgen : Generate the global java options.
ptgen : Generate partition setting header & scatter file.
sign-image : Sign all the image generated.
encrypt-image : Encrypt all the image generated.
update-api : Android default build action
(be executed if system setting or anything removed from API).
check-modem : Check modem image consistency.
upadte-modem : Update modem image located in system.img.
modem-info : Show modem version
gen-relkey : Generate releasekey for application signing.
check-appres : Check unused application resource.
sdk : Build sdk package.
win_sdk : Build sdk package with a few Windows tools.
banyan_addon : Build MTK sdk addon.
cts : Build cts package.
bootimage : Build bootimage.
cacheimage : Build cacheimge.
systemimage : Build systemimage.
recoveryimage : Build recoveryimage.
secroimage : Build secroimge.
factoryimage : Build factoryimage.
userdataimage : Build userdataimage.
Modules:
pl, preloader : Specify to build preloader.
ub, uboot : Specify to build uboot.
k, kernel : Specify to build kernel.
dr, android : Specify to build android.
NULL : Specify to build all components/modules in default.
k <module path>
: Specify to build kernel component/module with the source path.
dr <module name>
: Specify to build android component/module with module name.
Example:
./mk -t e1k emigen
: Generate EMI setting source code.
./mk -o=TARGET_BUILD_VARIANT=user e1k n
: Start a user mode full build.
./mk listp : List all available projects.
./mk e1k bootimage
: Build bootimage for e1k project.
./mk e1k bm_new k
: Build kernel for e1k project.
./makeMtk e1k c,bm_remake ub k
: Clean & Build uboot and kernel for e1k project.
./makeMtk e1k n k kernel/xxx/xxx
: Build(full build) kernel component/module
under the path "kernel/xxx/xxx" for e1k project.
./makeMtk e1k r dr Gallery
: Rebuild android module named Gallery for e1k project.
./makeMtk e1k mm packages/apps/Settings
: Change Directory to packages/apps/Settings and execute "mm"
转自:http://blog.csdn.net/blogercn/article/details/7449091