android-5.1编译配置(van)
必备文件:
archives1211.tgz
ubuntu_install_1204.tgz 安装指引:
ubuntu_install_1204/readme.txt 工作目录结构:
git
├── vanzo_team vanzo:tools/vanzo_team.git
└── vanzo_team2 vanzo:tools/vanzo_team2.git
git2
├── vanzo_team vanzo2:tools/vanzo_team.git
└── vanzo_team2 vanzo2:tools/vanzo_team2.git
build_projects vanzo:tools/build_projects.git
build_projects2 vanzo2:tools/build_projects2.git 其他注意事项:
因为新的编译脚本频繁调用vanzo_team*的公共库文件,代码里面采用了直接引用的方式,
所以需要本地环境定制python的library path:
~/git2/vanzo_team/songlixin/config/ln.sh
脚本
am编译脚本核心内容:
zprojects/scripts/mk.sh
11 source zprojects/$project_name/$project_name.env
12 source build/envsetup.sh
18 lunch full_$VANZO_INNER_BOARD_PROJECT_BY_NAME_VALUE-user
23 make -j32
所以想要实现编译快速迭代,可以手动source env文件和envsetup.sh文件,然后按照标准android编译即可。
编译
ccache
ccache对编译速度影响的试验(基于6735 n325b-ubtel):
ccache不打开时完整编译:#### make completed successfully (01:57:30 (hh:mm:ss)) ####
ccache打开后第二次编译:#### make completed successfully (01:23:19 (hh:mm:ss)) #### (此时.ccache目录870MB)
ccache增大容量后第二次编译:#### make completed successfully (37:05 (mm:ss)) #### (此时.ccache目录17GB) ccache安装及增容命令: sudo apt-get install ccache; ccache -M 50G; (ccache默认最大cache为1GB,远远不够)
编译命令
repo init -u vanzo2:platform_lp1_6735m/manifest.git -m vtrunk.xml
repo sync -j32
repo start work --all
ln -s ~/build_projects2/prebuilts-51-64bit prebuilts
nohup ./am n320a-kewei-35m -d // eng版本.如果要user版本,把'-d'参数去掉即可;nohup为不输出log,直接保存在nohup.out文件中
JDK版本需求
4.4: OracleJDK6
5.0: OpenJDK7
可以同时安装,所以一台机器既可以编译4.4也可以编译5.0, 通过update-alternatives切换即可.
(详见老宋脚本git/vanzo_team/songlixin/ubuntu_install_1204/local_install_jre64.sh)
(也可以使用"refactor 155 0"和"refactor 155 1"进行java版本切换)
调试
selinux
android 5.0默认启用selinux,权限控制严格很多.
如果碰到诸如:
E/SELinux ( 127): avc: denied { add } for service=themes.add scontext=u:r:shell:s0 tcontext=u:object_r:default_android_service:s0 tclass=service_manager
E/ServiceManager( 127): add_service('themes.add',60) uid=1000 - PERMISSION DENIED
或是:
W/FileUtils( 681): Failed to chmod(/data/resource-cache): android.system.ErrnoException: chmod failed: EACCES (Permission denied)
的错误,可以从selinux着手去调查.
具体selinux配置在源码'external/sepolicy'目录,但我们的修改一般会overlay,放在'device/mediatek/common/sepolicy'目录.
android-5.1编译配置(van)的更多相关文章
- Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面
Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面.上网问了问百 ...
- 安装ubuntu16虚拟机,下载android源码,配置编译环境
Android 源码编译步骤: 我考虑了一下,目前电脑装了SSD,8G内存,使用虚拟机编译源码应该够用. 首先下载虚拟机软件,由于最近一直在使用virtualbox,感觉蛮不错了,下载地址: http ...
- Android 秒级编译 Freeline
http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=2650662410&idx=1&sn=c654fa7b0cc8c91 ...
- Android studio 加速编译方法
JRebel for Android 是一个Android Studio的插件,可以大大加速Android Studio的编译速度,对于小项目来说或许不明显:但是当项目达到一定的规模时,它对于Andr ...
- android NDk环境编译总结
首先,这篇文章的撰写是基于很多前人的优秀的帖子,感谢他们的分享让我能够学习这么多的知识.谢谢 Android NDK开发环境的搭建 前言: Android 上,应用程序的开发,大部分基于 Java 语 ...
- Android源码编译的全过程记录
写本篇文章主要参考了官方文档和网上的一些资料,但是对于Android最新的代码来说,网上资料有些已经过时.本文中步骤已经作者实验,大家可以亲自执行试试.由于没有使用Eclipse的习惯,所以没有做Ec ...
- 【转】Android 源码编译make的错误处理--不错
原文网址:http://blog.csdn.net/ithomer/article/details/6977386 Android源码下载:官方下载 或参考android源码下载方式 Android编 ...
- android.mk android源码编译
http://www.cnblogs.com/chenbin7/archive/2013/01/05/2846863.html Android.mk简单分析 2013-01-05 22:51 by . ...
- Android 环境下编译FFmpeg
Android 环境下编译FFmpeg 开发环境:Ubuntu 12.04.2 LTS , android-sdk-linux, android-ndk-r8e 一 .X264 编译 1. X2 ...
- 分析cocos2d-x在Android上的编译过程(1):cocco2d-x是怎样生成的Android的文件夹结构
当新建完一个cocos2d-x的项目后.进入到项目中的proj.android中,会看到例如以下的文件夹结构 在VS先把它编译,然后导入到Eclipse中,导入完后会看到多了几个文件 watermar ...
随机推荐
- SQL函数-str()
1 str()函数用于将数值类型数据转换未字符类型. 2 str()函数语法 select str(数字类型的表达式[,表达式总长度][,小数点后面的位数]) 表达式总长度和小数点后面的位数为可选择参 ...
- Linux 如何重新划分Swap交换分区
SWAP分区是LINUX暂时存储数据的交换分区,它主要是把主内存上暂时不用得数据存起来,在需要的时候再调进内存内,且作为SWAP使用的分区不用指定“MoutPoint”(载入点)它至少要等于系统上实际 ...
- 入门Python:《趣学Python编程》中英文PDF+代码
入门python推荐学习<趣学python编程>,语言轻松,通俗易懂,讲解由浅入深,力求将读者阅读和学习的难度降到最低.任何对计算机编程有兴趣的人或者首次接触编程的人,不论孩子还是成人,都 ...
- ItelliJ IDEA开发工具使用—创建一个web项目(转)
最近想用IDEA编辑器开发,但是平时都用MyEclipse和eclipse习惯了,突然间用IDEA到处碰壁的感觉.在不断的摸索之后终于苦尽甘来,学会了基本的web程序如何创建以及运行了.期间在网上找了 ...
- ListView常用操作
1.设置ListView只显示一列,并且每加一条记录是向下添加的. ListView添加方法:把View属性改成Details,再Columns属性中添加一列 然后用如下代码即可实现 ListView ...
- 26.使用IntelliJ IDEA开发Java Web项目时,修改了JSP后刷新浏览器无法及时显示修改后的页面
转自:https://blog.csdn.net/yuxxz/article/details/51318908 使用IntelliJ IDEA开发Java Web项目时,修改了JSP后刷新浏览器无法及 ...
- git --- ! [rejected] master -> master (non-fast-forward)
如何解决failed to push some refs to git Administrator@PC-20150110FGWU /K/cocos2d/yc (master) $ git push ...
- Kinect 开发 —— 用户交互设计的若干思考
Metro 风格 windows 8 Kinect Hub 手势原型设计 悬停选择 翻页控制 关节点重叠的处理方法 将箭靶设置在画面的边缘,这样玩家持弓的角度与屏幕保持一个大约45度的锐角,这 ...
- 竖向 两级手风琴 TAB 栏
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- layui动态无限极菜单
ajax加jQuery实现 效果图 参考文章:https://www.wanpishe.top/detail?blogId=644aa177-9795-456a-8090-ee1264bf5d9d