在Linux环境下怎么编译Android源码?
http://www.linuxidc.com/Linux/2011-10/44236.htm
JDK的安装:
Linux Mint 13 中自带有OpenJDK,但这个不是我想要的,我们要的是sun-java6。
1、在安装sun的jdk前,先删除OpenJDK,打开新立得,搜索OpenJDK,彻底删除所有的包。
或者执行 sudo apt-get autoremove openjdk-6-jre
2、在sun的官网上http://www.oracle.com/technetwork/java/javase/downloads/jdk6-downloads-1637591.html 下载最新的安装文件(如:jdk-6u34-linux-x64.bin)。
增加执行权限:sudo chmod u+x jdk-6u34-linux-x64.bin
将安装文件拷贝到 /usr/lib/java/ 目录下
执行安装命令 ./jdk-6u34-linux-x64.bin
成功安装完JDK后,接下来我们将要进行JDK的配置,使用命 $ sudo gedit /etc/environment 对environment文件进行修改并添加以下代码:
PATH="/usr/lib/java/jdk1.6.0_34/bin"
CLASSPATH="/usr/lib/java/jdk1.6.0_34/lib"
JAVA_HOME="/usr/lib/java/jdk1.6.0_34"
若PATH已存在,则用冒号作间隔,将jdk的bin目录地址加上,这样java的环境变量将配置成功了,但这样默认使用的JDK可能还不是我们 刚才安装的,因为ubuntu可能还会有默认的jdk,如openjdk;所以,为了使默认使用的是我们安装的jdk,还需执行如下命令:
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk1.6.0_34/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/java/jdk1.6.0_34/bin/javac 300
$ sudo update-alternatives --config java
成功执行命令后,我们安装的JDK就是系统默认的了,执行命令 $ java -version 就可以成功看到 JDK的相关信息了如:
java version "1.6.0_34"
Java(TM) SE Runtime Environment (build 1.6.0_34-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.9-b04, mixed mode)
一、步骤如下:
$ cd [android系统所在目录] //先进入到要编译的目录下面
$ . build/envsetup.sh //这个脚本用来设置ANDROID的编译环境(注意 . 后面有一个空格)
$ choosecombo //这个命令也要再 build 目录下年进行,他是用来选择编译目标(如目标硬件屁股你太、eng还是user等)。一般而言,厂商会设置自己特有的编译选项
补充:执行玩上面两个步骤就可以编译系统了,android平台提供了三个命令用于编译:make、mmm、mm,使用方法与环境如下:
make:不带任何参数,用于编译整个系统,时间比较长,若不想编译整个系统 最好不要用
make + 模块名称:编译单个模块,会把与他有关的模块一起编译,
mm:这个命令要进入源码目录使用,他只编译当前目录下的模块,他和mmm一样的
注意:如果知道模块名称,则用 make + 模块名 即可 ;如果不知到模块名称但知道模块所在目录,用mmh或者 mmm,这两个编译时间比较短
$ make //编译整个源码
说明:要想编译单个工程的源码,必须先把整个工程的源码编译一遍,然后再对单个源码进行编译
android 模块编译,mm 命令
如果你只需要修改某一个模块的内容,但是却每次都要执行make, 最后等待很长时间。
使用模块编译,那只需要在你所在的模块的目录或者其子目录,执行mm,便可以编译出一个单独的apk,这样岂不快哉!
具体步骤:
1)打开~/.baserc文件,加入source ~/I850/build/envsetup.sh. 加入你自己该文件所在的路径,这样就免去了每次启动新的终端执行mm命令之前,需要引用此文件。
2)完成步骤1之后,就可以在你的模块里面随意执行mm了,要想使用其他快速命令,可以查看envsetup.sh文件,比如cgrep,jgrep,resgrep在不同类型的文件里面进行相应的查询。还有m,mmm等等
3)还可以使用adb push 将你的apk push到模拟器或者手机终端,也可以在工程根目录通过make -snod生成新的system.img
二、找编译源码后对应的apk的位置路径:
/home/wangxianming/aw813/AP/out/target/product/aw813/system/app/Mms.apk //找短信对应的apk
三、怎么在手机中利用编译的adb,把编译出的adb烧到手机中:
(1)$ cd /aw813/AP/out/host/linux-x86/bin
$ ./adb kill-server //杀死手机中有的adb
(2)$ ./adb devices //识别编译出的adb
(3)如果说权限不够,No Permissions 就改用root权限:
$ su 密码:
注意:数据库一定要一致!否则烧录的版本会报错!
四、安装APK
$ adb install xxx.apk //直接安装APK
$ adb install -r xxx.apk //安装并覆盖已经存在的APK
在Linux环境下怎么编译Android源码?相关推荐
- Linux环境下安装MySQL(源码安装)
Linux环境下安装MySQL(源码安装) 1.事先从官网/国内镜像站点中下载源码安装包,上传至服务器: 2.安装开发工具和开发包(从5.5开始使用cmake编译) 3.创建用户和组 4.编译安装My ...
- Linux操作系统下如何编译安装源码包软件
一.什么是源码包软件? 顾名思义,源码包就是源代码的可见的软件包,基于Linux和BSD系统的软件最常见:在国内源可见的软件几乎绝迹:大多开源软件都是国外出品:在国内较为出名的开源软件有fcitx;l ...
- Linux下如何编译Android源码~~~
使用的是putty.exe软件 本身机器windows环境连接服务器的linux环境编译android putty.exe界面在上面有提到了 输入你的账号密码后会进入 这样的效果就算是成功了可以ls就 ...
- Ubuntu18.04系统编译android源码环境配置
1. 前言 我们做andorid系统开发,肯定时刻与源码打交到,特别是做新项目时,最重要的事情就是下载源码,然后配置环境编译,假如你的电脑是刚重装系统过,一个全新的开发环境,那么首要解决的事情就是完善 ...
- 《深入解析Android 虚拟机》——第1章,第1.3节编译Android源码
本节书摘来自异步社区<深入解析Android 虚拟机>一书中的第1章,第1.3节编译Android源码,作者 钟世礼,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
- ubuntu 11.10下载和编译Android源码
ubuntu 11.10下载和编译Android源码 由衷感谢网上的各个博主的文章,给了小弟我莫大的帮助.这里呢,小弟也把自己的经历记录下来,以供大家参考^^.这篇应该算是零基础.从无到有的流程介绍了 ...
- android:自己动手编译Android源码(超详细)
自己动手编译Android源码(超详细) 涅槃1992 2016.06.20 02:12* 字数 4330 阅读 86819评论 89喜欢 339赞赏 7 在Android Studio代码调试一文中 ...
- win10最新下载编译Android源码的简易方法分享(已亲测)
win10最新下载编译Android源码的简易方法分享(已亲测) 准备至少150G的硬盘空间 win+R 输入control 打开程序与功能-启用或关闭Windows功能 勾选"适用于Lin ...
- 最新i7编译android源码,编译ROC-RK3328-CC Android7.1源码教程
环境安装 windows准备 首先在windows中划分一块100左右的分区安装ubuntu16,在linux环境编译Android源码 安装ubuntu16(注意一定要16的ubuntu,其他版本的 ...
最新文章
- 学建筑要学哪些计算机绘图,建筑学专业学CAD买什么书好?
- sqlalchemy.exc.DataError: (pymysql.err.DataError) (1366, “Incorrect string value: ‘\\xE6问题解决
- 洛谷 P2574 XOR的艺术
- 【栈】栈的基本操作实现模板的总结
- 美团在Redis上踩过的一些坑-4.redis内存使用优化
- LeetCode 1774. 最接近目标价格的甜点成本(DFS / 01背包)
- 高通平台添加或者移植一个完整的camera
- php中foreach()的用法
- java new对象_Java中new一个对象是一个怎样的过程?JVM中发生了什么?
- 谷歌浏览器无法登录账号
- 清华学姐教你如何用python处理excel数据
- 让我感动的100对古装情侣
- Vue 中获取 package.json 信息
- 一键清除锁屏密码:苹果手机忘记锁屏密码的解决方案
- 国外LEAD赚钱的一些习惯
- PDF文档如何在线进行解密操作
- echarts图例样式单独设置
- 怎样判定网站是否被K?网站被K的原因与解决办法
- python quit函数_在Python中启用quit函数的问题
- 快速了解各种三维数字沙盘
热门文章
- 彻底关闭win10更新自动更新 卸载win10自带杀毒软件 新增联想软件 lenovo quick fix
- 深度信念网络DBN的一个matlab实例
- 联想 Thinkpad SL410使用体验
- 在c51语言的循环语句中 用作循环结束,在C51语言的循环语句中,用作循环结束条件判断的表达式为()...
- 蓝牙Mesh开发五 Ble Mesh友谊FriendShip之TLSR8258低功耗节点
- awvs安装及问题解决
- TS 36.211 V12.0.0-上行(1)-时隙结构和物理资源
- github下载提速教程
- 论文笔记:CVPR2022 Regional Semantic Contrast and Aggregation for Weakly Supervised Semantic Segmentation
- 如何使用git 生成密钥?