ubuntu 编译android,安卓手机装ubuntu
本篇文章给大家谈谈ubuntu 编译android,以及安卓手机装ubuntu对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
Ubuntu18.04 从头开始编译 Android Native WebRTC
本文详细记录Mac下使用PD虚拟机安装ubuntu18.4桌面版,编译Android Native WebRTC的过程。
如果仅需使用WebRTC,官方提供的预编译包即可满足需求,无需手动编译:
通过Android Studio添加依赖:implementation'org.webrtc:google-webrtc:1.0.+'
安装配置Ubuntu虚拟机,下载Ubuntu镜像,手动选择下载好的iso文件进行安装,设置用户名密码,指定虚拟机文件名和位置,等待安装完成。
安装Parallels Tools,解决无法直接安装的问题,创建安装文件后重启虚拟机,设置环境变量配置代理,使用主机sockes提供的http代理,虚拟机网络模式使用默认的共享网络。
下载WebRTC代码,安装必要软件,使用git clone命令下载源码,配置gclient代理,下载代码后通过gclient sync同步代码。
执行fetch命令下载源码和开发环境,设置gclient代理,使用gclient sync命令同步代码,下载和同步过程需要稳定网络环境。
使用GN和NINJA构建系统编译代码,执行gn gen和ninja命令构建所有目标和example app,生成apk文件和aar文件,完成编译打包过程。
在Android Studio中使用aar文件替换预编译依赖,按照推荐方法导入Android Studio代码,生成的gradle文件参考示例进行补全。
编译过程需要稳定网络环境,注意代码庞大复杂,整个构建系统采用了gn和ninja,确保编译成功并替换预编译依赖。
简述android源代码的编译过程
编译Android源代码是一个相对复杂的过程,涉及多个步骤和工具。下面我将首先简要概括编译过程,然后详细解释每个步骤。
简要
Android源代码的编译过程主要包括获取源代码、设置编译环境、选择编译目标、开始编译以及处理编译结果等步骤。
1.获取源代码:编译Android源代码的第一步是从官方渠道获取源代码。通常,这可以通过使用Git工具从Android Open Source Project(AOSP)的官方仓库克隆代码来完成。命令示例:`git clone `。
2.设置编译环境:在编译之前,需要配置合适的编译环境。这通常涉及安装特定的操作系统(如Ubuntu的某些版本),安装必要的依赖项(如Java开发工具包和Android Debug Bridge),以及配置特定的环境变量等。
3.选择编译目标:Android支持多种设备和配置,因此编译时需要指定目标。这可以通过选择特定的设备配置文件(如针对Pixel手机的`aosp_arm64-eng`)或使用通用配置来完成。选择目标后,编译系统将知道需要构建哪些组件和变种。
4.开始编译:设置好环境并选择了编译目标后,就可以开始编译过程了。在源代码的根目录下,可以使用命令`make-jN`来启动编译,其中`N`通常设置为系统核心数的1~2倍,以并行处理编译任务,加快编译速度。编译过程中,系统将根据Makefile文件和其他构建脚本,自动下载所需的预构建二进制文件,并编译源代码。
5.处理编译结果:编译完成后,将在输出目录(通常是`out/`目录)中生成编译结果。这包括可用于模拟器的系统镜像、可用于实际设备的OTA包或完整的系统镜像等。根据需要,可以进一步处理这些输出文件,如打包、签名等。
在整个编译过程中,还可能遇到各种依赖问题和编译错误,需要根据错误信息进行调试和解决。由于Android源代码庞大且复杂,完整的编译可能需要数小时甚至更长时间,因此耐心和合适的硬件配置也是成功编译的重要因素。
如何用ubuntu 12.04 32bit 编译android 4.4.4
系统环境
系统:Ubuntu12.04 64位系统。
源码:Android4.4源码。
选择Ubuntu12.04,是因为在14.04上没能折腾成功,在上面兼容32位程序的配置有点烦。12.04必须要用64位的,编译Android4.4时需要64位环境,同时要兼容32位程序,折腾。
步骤
配置jdk6
Android官方给的步骤是用OpenJdk,实测是不行的。网上找到
这个网址有需要的jdk,下载自解压安装包。自解压后在当前目录下生成一个jdk的目录,打开/etc/environment,增加自己的jdk
bin目录到PATH里面。同时新增如下环境变量:
CLASSPATH=/path/to/your/local/jdk/dir/lib
JAVA_HOME=/path/to/your/local/jdk/dir
然后执行如下命令,设置系统的默认jdk:
$ sudo update-alternatives--install/usr/bin/java java/usr/local/java/jdk1.6.0_38/bin/java 300
$ sudo update-alternatives--install/usr/bin/javac javac/usr/local/java/jdk1.6.0_38/bin/javac 300
$ sudo update-alternatives--install/usr/bin/javaws javaws/usr/local/java/jdk1.6.0_38/bin/javaws 300
$ sudo update-alternatives--install/usr/bin/jar jar/usr/local/java/jdk1.6.0_38/bin/jar 300
$ sudo update-alternatives--install/usr/bin/javap javap/usr/local/java/jdk1.6.0_38/bin/javap 300
$ sudo update-alternatives--config java
安装软件包
能装的都要装上,以免编译失败,又要回过头重装,如下:
$ sudo apt-get install build-essential make gcc g++ libc6-dev texinfo
libncurses-dev git-core gnupg flex bison zip curl ncurses-dev libsdl-dev
zlib1g-dev ia32-libs libxml2-utils lzma
编译源码
到源码目录下,如下:
$ source build/envsetup.sh
$ lunch
选择arm平台。
$ make-jn
n为CPU个数的两倍,主要是提高编译速度。
可能的错误
编译过程碰到如下错误:
File"/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File"/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
一般情况是因为前面的javap没有配置所致。如果必须的软件包没有安装,也会有类似的提示,仔细向上翻看错误提示,找到真正的错误地方,安装对应的软件包即可。