记录Android Framework级开发的心酸历程(一):环境篇
来源:互联网 发布:手机上能注册淘宝店铺 编辑:程序博客网 时间:2024/06/05 23:44
在接到公司项目之前没有接触过Linux,Android,甚至Java,可以说所有和Android有关的东西都知之甚少。写这套东西是为了给自己做个备忘以后系统的学习,给新手些借鉴,同事望高手指导!谢了
项目开始了,首先要下载和编译Android4.0.3的源码,环境如下:XP-》VMware8-》Ubuntu12.04-》jdk1.6.0_24, curl, repo, gcc 4.4, g++4.4, flex, bison .....按照错误提示,缺什么装什么
下载还算顺利,花了2个多小时。编译也还好,双核的CPU,用了 make -j4,花了5个多小时,中间出现过“cannot find -lz"错误,问搞嵌入式的基友说lz是libz的简写,这个的意思是可能缺少某个库,Linux里分动态库so和静态库a两种,我试着用apt-get install libz.so ,不行,之后用apt-get install libz.a,居然可以了!为了进度,我也不去追究原理了,都是凭感觉和经验。对了,编译期间也可能产生很多permission denied的错误,用sudo chmod命令自己改下权限吧。
编译成功,在generic文件夹下会出现system.img, userdata.img,ramdisk.img三个img文件,使用emulator -image system.img -data userdata.img -ramdisk ramdisk可以模拟了,出现手机图形的那一刻还是很兴奋的,不过噩梦才刚刚开始。
修改framework,需要配置调试环境,当然,你也可以在sourceinsight之类的工具编辑源码然后模块编译framework,按照网上的教程,我进行了Eclipse调试环境的搭建,即把development/ide/eclipse/.classpath文件拷贝到源码的根目录,记得.classpath文件是默认隐藏的,用图形界面ctrl+h或命令行ls -a可以看到,草...这种事不说谁知道...就这样把工程导入到eclipse里,一看有一个错误,还挺开心,是“could not delete ...../target/common/obj/JAVA_LIBRARIES/android_stub_surrent_intermediates/class/AndroidManifest.xml”这句话主语是呢,是eclipse不能删除这文件,还是我不能删除这文件呢,按照常理是eclipse告诉我它不能删除这个文件,但是外行也知道AndroidManifest.xml文件还是很重要的,删除它干毛呢?好嘛,你说你删不掉,我替你删,结果我删了之后,它又叫我删一个什么Android文件夹,我没耐性了,这要删除到什么年月啊?我一寻思,eclipse删不掉那一定是因为文件的权限不够喽,好,我就吧源码目录下的所有文件属性都设置了777,即rwx,导入了,我次奥,这下出现200多个错误!你是仇人派来玩我的吧?
这样eclipse调试环境就这样配置失败了,现在还在找原因,不过可以先试试模块编译吧,先来个./bulid/envsetup.sh 准备一个各个命令,这个后边一定要有空格!!我也不知道为什么。然后mmm framework/base -B,2分钟之后就成功了,再重新生成system.img文件使用make snod。也成了,模拟,OK!下班睡觉,想着明天找个高手来帮我解决调试的问题。
第二天早晨来到公司,想先模拟下Android享受一个成就感,高潮来了,三个img文件消失了!这也太诡异了吧!前一天晚上还模拟了,早晨就不见了!!没办法,听说linux,Android啊水就是这么深,重新编译源码吧!
- 记录Android Framework级开发的心酸历程(一):环境篇
- 一名大学毕业生的心酸求职历程全记录
- 记录被计算机虐死的心酸历程之bamm-2.5.0的安装-1
- 记录一美炸天程序媛进入新公司后的心酸历程
- 记录一美炸天程序媛进入新公司后的心酸历程
- 记录自己的开发历程
- 测试硬盘IO性能的心酸历程
- react-native-splash-screen的心酸历程
- ZMQ(java)-编译的心酸历程
- 小白心酸的JDK安装历程
- LOL屌丝3个月成为android高手的心酸历程
- 自学android的心酸历程(2016年11月10日第一篇)
- 知保网的开发历程一
- 一个Android开发妹子的找工作心酸史
- 记录自己的Android学习(一)Android开发环境的配置
- android学习历程2--搭建开发环境
- 记录java学习的历程(一)
- 科研心酸历程
- 扫雷___建立工程和界面预估
- CString 实现原理
- 第一篇:测试
- java算法:排序实现
- iOS开发之iOS程序偏好设置(Settings Bundle)的使用
- 记录Android Framework级开发的心酸历程(一):环境篇
- ICMP数据包-实战分析
- java算法:选择排序
- java算法:插入排序
- div自动换行word-break:break-all和word-wrap:break-word的区别
- java算法:冒泡排序
- 扫雷___界面的加载
- MFC工具条与状态条设计
- 十六. Sql server表格,索引,视图的命名规范