android源码编译

APK打包过程

元气小坏坏 提交于 2020-02-02 04:08:55
APK构建打包过程 通过aapt打包res资源文件,生成R.java、resources.arsc和res文件(二进制 & 非二进制如res/raw和pic保持原样) 处理.aidl文件,生成对应的Java接口文件 通过Java Compiler编译R.java、Java接口文件、Java源文件,生成.class文件 通过dex命令,将.class文件和第三方库中的.class文件处理生成classes.dex 通过apkbuilder工具,将aapt生成的resources.arsc和res文件、assets文件和classes.dex一起打包生成apk 通过Jarsigner工具,对上面的apk进行debug或release签名 通过zipalign工具,将签名后的apk进行对齐处理。 工具介绍: 工具 描述 aapt/aapt2 Android资源打包工具 aidl Android接口描述语言转换为跨进程通信.java文件的工具 javac Java编译器 proguard 代码混淆工具 dx/d8 转化.class文件为Davik VM能识别的.dex文件 apkbuilder 打包生成apk jarsinger 签名工具 zipalign 字节码对齐优化工具 资源编译流程 AAPT: Android Asset Packaging Tool 资源合并 资源文件编译

理解 Android Build 系统

爷,独闯天下 提交于 2020-01-26 10:23:50
摘自: https://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/index.html 前言 Android Build 系统是 Android 源码的一部分。关于如何获取 Android 源码,请参照 Android Source 官方网站: http://source.android.com/source/downloading.html 。 Android Build 系统用来编译 Android 系统,Android SDK 以及相关文档。该系统主要由 Make 文件,Shell 脚本以及 Python 脚本组成,其中最主要的是 Make 文件。 众所周知,Android 是一个开源的操作系统。Android 的源码中包含了大量的开源项目以及许多的模块。不同产商的不同设备对于 Android 系统的定制都是不一样的。 如何将这些项目和模块的编译统一管理起来,如何能够在不同的操作系统上进行编译,如何在编译时能够支持面向不同的硬件设备,不同的编译类型,且还要提供面向各个产商的定制扩展,是非常有难度的。 但 Android Build 系统很好的解决了这些问题,这里面有很多值得我们开发人员学习的地方。 对于 Android 平台开发人员来说,本文可以帮助你熟悉你每天接触到的构建环境。

ubuntu 下载编译chromium

。_饼干妹妹 提交于 2020-01-23 17:05:11
chromium代码下载有几种办法 (1)从github下载,好处是下载速度快,不用从Google服务器上传大的压缩包回来,需要的流量会少一些 git clone https://github.com/chromium/chromium.git ; (2)从百度网盘上下载,之前已经有人将编译后的所有的代码上传至百度网盘,其代码保留着git log信息,下载后更新版本不需要多少流量。 https://blog.csdn.net/gs344937933/article/details/86078410 (3)在租的服务器上下载代码,压缩后再将代码回传,比较折腾,我用的就是这种办法。 先在搬运工上租个服务器,默认服务器的系统是centos,我重装成ubuntu,版本也需要注意,否则会提示:“ Only Ubuntu 12.04 (precise), 14.04 (trusty), 14.10 (utopic), 15.04 (vivid), 15.10 (wily) and 16.04 (xenial) ”,重装系统很快一两分钟就好。CPU、RAM都是固定的,装的系统默认swap 分区只有512M,略微有点偏小了,影响效率,建议自行加大。 3.1 swap 分区增大,我增大4G: 首先根据搬运工给的服务地址/端口/密码,通过ssh连接上服务器,然后执行如下命令: dd if=/dev

【备忘】MAC 编译ffmpeg4.2.2的shell脚本

情到浓时终转凉″ 提交于 2020-01-16 01:42:20
1、创建一个文件比如 build_for_andorid.sh , 复制粘贴下面的内容 #!/bin/bash #这里修改的是最低支持的android sdk版本(r20版本ndk中armv8a、x86_64最低支持21,armv7a、x86最低支持16) API=29 # NDK的路径,根据自己的安装位置进行设置 export NDK=/Users/XXX/Library/Android/sdk/ndk-bundle export SYSROOT=$NDK/platforms/android-29/arch-arm64 export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64/ # 这里找到对应得文件 function build_android { #相当于Android中Log.i echo "Compiling FFmpeg for $CPU" ./configure \ --prefix=$PREFIX \ --disable-neon \ --disable-hwaccels \ --disable-gpl \ --disable-postproc \ --enable-shared \ --enable-jni \ --disable-mediacodec \ --disable-decoder=h264

vlc-android编译

孤街浪徒 提交于 2020-01-13 18:39:07
首先关于什么是vlc我这里就不多介绍了,毕竟搜索到这里的大家都是知道的。 这两天一直在弄vlc android的编译,确实很多坑,但是好在最后还是编译出来了(SDK APP我是没编译出来毕竟对Gradle之类的不太懂) 编译一律参考官方wiki https://wiki.videolan.org/AndroidCompile/ 下面给大家介绍一下我的编(cai)译(keng)历程 环境ubuntu 18.04 (1) 按照官方wiki说的安装一些包 (2) SDK与NDK的安装与配置 NDK下载地址: https://developer.android.google.cn/ndk/downloads/older_releases.html 这里需要参考官方的说明来选择下载的包,比如我编译的版本需要NDK r18b SDK下载,这里就不要单独下载SDK了最简单的方法就是下载Android Studio这位大哥会帮您把SDK给下载完毕的 下载地址: https://developer.android.google.cn/studio/#downloads NDK解压完,Android Studio安装完以后呢,就要配置一下对应的环境变量 在home目录下 然后在文档的最后加入 当然这是我的路径,您还得根据自己的实际情况修改路径 使环境变量生效 (3) JDK的安装与配置

WebRTC Android 编译

笑着哭i 提交于 2020-01-12 05:32:13
一 、前言 WebRTC 名称源自网页即时通信(英语:Web Real-Time Communication)的缩写。谷歌收购并开源支持 网页浏览器 进行实时语音对话或视频对话的 API 。它于2011年6月1日开源并在 Google 、 Mozilla 、 Opera 支持下被纳入 万维网联盟 的W3C推荐标准。 如果不修改 webrtc 相关源码,建议不要去折腾编译这个源码工程,光下载源码就够你头疼的。 可以直接引用已经编译好的中央库(Maven或者Gradle): 官方推荐: compile 'org.webrtc:google-webrtc:1.0.+' (+ 换成对应版本号,一定要去上面网址里面查询是否存在该版本,版本号查询地址: https://bintray.com/google/webrtc/google-webrtc ) 官网地址 : https://webrtc.org 。 二、环境准备 1、WebRTC 编译暂时支持 linux 平台,所以需要有一个 linux 系统或模拟器 2、设置代理,这一步不做过多介绍,需要注意的是需要在终端设置代理,这一步也是比较坑的一步,大家可以搜一下怎么设置 3、下载 depot_tools:git clone https://chromium.googlesource.com/chromium/tools/depot_tools

Android拓展系列(6)--CM9源码下载和编译

为君一笑 提交于 2020-01-11 12:55:48
公司最近也开始基于android4.0 ICS修改框架了,公司的手机暂时不适合拿回家测试,也没有kernel的权限。 从个人的角度看,我手上现在有两部手机,一部是Htc G9 Aria,一部是Samsung I9100 Galaxys2,Cyanogenmod的开源代码都提供了对这些手机的驱动支持,并且能方便的编译打包,并安装到手机。 上一篇文章是android2.3的编译,已经过时,而且现在ubuntu已经升级到12.04,等等之类的,使我觉得非常有必要重新写一篇新的博客来展示最新的android怎么在最新的ubuntu上编译。 基于以上几点,下面我将基于galaxys2来演示如何编译cm9的源码并打包zip安装到手机。下面是我的参考文章: http://source.android.com/source/initializing.html http://forum.xda-developers.com/showthread.php?t=1552090 https://github.com/CyanogenMod/android 这些链接或多或少会有一些问题,从这些这些东西我整理出最简单最有效的一条编译之路,也许会很上面这些文章很多步骤和说法上不一致。 1.ubuntu12.04的选择 我第一次用x64的系统,发现配置环境的时候,会有很多种错误,后来我用32位的系统

CyanogenMod源码下载和编译(Android ROM定制基础篇)

江枫思渺然 提交于 2019-12-26 19:26:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 转载一个哥们的教程,内容我做了一定修正,供自己和大家查阅: 本来想下载Android官方源代码,没想到android.git.kernel.org维护,不能访问,非常遗憾,并因此还郁闷了几天。 后来转投MIUI,没找到它的源码,不知道它的"超过40万人社区开发团队"是什么意思,求解具体开发人员几何,都是谁? 后来一想,竟然忘记了CyanogenMod这茬,这可是的的确确的开源啊,我的手机一直也在用CyanogenMod系统的,感觉确实不错。 1.准备 我得环境如下, vmware work 8 Ubuntu11.10 (64位) 下载CyanogenMod的gingerbread分支 Ubuntu的环境配置大家可以参考我前面写的《 Android拓展系列(3)--Android源码下载 》,也可以参考 http://source.android.com/ 。 这里着重说下Android 2.3以上需要借助JAVA6,安装Java6,我推荐如下安装: 1 $ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" 2 $ sudo add-apt-repository "deb-src http://archive

配置CyanogenMod 10编译环境

社会主义新天地 提交于 2019-12-26 19:18:30
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 环境: Ubuntu12.04 64bit 硬盘:80G 参考来源网站:http://wiki.cyanogenmod.com/wiki/Galaxy_Nexus_%28GSM%29:_Compile_CyanogenMod_9_%28Linux%29 1、安装JDK 1.6.0,参考教程:http://cofface.org/?p=634 2、 安装必备工具合集:(以下工具一个一个安装) 1)root@cofface-desktop:~# sudo apt-get install git-core gnupg flex bison gperf build-essential 2)root@cofface-desktop:~# sudo apt-get install zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs 3)root@cofface-desktop:~# sudo apt-get install x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev 4) root@cofface-desktop:~# sudo apt-get install libgl1-mesa

Linux编译安卓代码的基本环境

依然范特西╮ 提交于 2019-12-25 15:51:20
Linux服务器编译安卓代码的基本环境 开发安卓最主要的开发工具就是Android Studio,而AndroidStudio的编译工具就是Gradle,因此Gradle是必不可少的;另外Android开发所依赖的开发工具包也是必不可少的。现在就开始准备这两个东西。 SDK sdk:软件开发工具包(缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。 下载 cd /opt wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip unzip sdk-tools-linux-3859397.zip mkdir sdk mv tools/ sdk/ 环境变量 vim /etc/profile export ANDROID_HOME=/opt/sdk export PATH=${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}:${PATH} source /etc/profile sdkmanager --list 如果报错是因为没有jdk Gradle 关于gradle的选择: