编译Android源码

简介: 版权声明:本文为sydMobile原创文章,转载请务必注明出处! https://blog.csdn.net/sydMobile/article/details/78469585 这篇文章完全是个人的笔记,所以内容可能讲的不清楚,不一定适合阅读学习。
版权声明:本文为sydMobile原创文章,转载请务必注明出处! https://blog.csdn.net/sydMobile/article/details/78469585

这篇文章完全是个人的笔记,所以内容可能讲的不清楚,不一定适合阅读学习。

这里单独提出来,所谓的Android源码指的是在AOSP下载的Android源码而不是我们开发中在sdk中的source。利用Android源码我们是可以自己来编译我们自己的Android系统和开发所需的SDK。

编译源码的环境: ubuntu12.04
这里的源码是在AOSP下载的Android源码,源码的大小压缩包有7个多G,解压后 19个G
编译源码后得到Android系统和sdk后文件的大小,Android 4.4达到了41个G
编译源码会得带system.img,这个过程会消耗大量的时间,这个编译后完成的system.img就是我们的Android系统,然后我们就可以运行模拟器了,这个模拟器就是搭乘的这个系统,当然这个系统也可以被装到我们的手机上面(这就是刷机),内核如果没有编译的话默认使用的是源码中的内核,编译kernel是需要单独编译了,有单独的内核源码,下载地址:https://android.googlesource.com/kernel/ 其实我们国内常用的Android系统就是这样编译的,不过在编译的过程中修改了一些内容,这就是Android系统级别的编译开发了。
Android之所以被称为开源就是它的源码你可以随便下载,如果你有能力的话就可以利用这些源码开发一款你的Android系统。
同样我们开发使用的SDK也是可以通过源码编译得到的,其实我们所使用的SDK,SDK包含了API还有其他的许多开发中的工具,比如adb,aapt等等很多,而API是应用程序接口 Application Programming Interface,就是软件系统不同组成部分的衔接的约定,拿Android来举例子了。Android的API就是我们
应用层开发的时候所调用的那些方法和类,通过这些方法和类来和下一层交流()沟通。都是通过这里的源码然后编译的,包括我们手机上面的Android系统,也是在这里编译的,然后加了一些开发,这样就开发出了属于自己的ROM,比如国内的小米、华为的系统。这就是Android的开源性,都可以以这个为基础开发属于自己的Android系统。

参考:http://www.jianshu.com/p/6d97b4a10b18

目录
相关文章
|
2月前
|
Java API 开发工具
如何将python应用编译到android运行
【6月更文挑战第27天】本文介绍在Ubuntu 20上搭建Android开发环境,包括安装JRE/JDK,设置环境变量,添加i386架构,安装依赖和编译工具。并通过`p4a`命令行工具进行apk构建和清理。
50 6
如何将python应用编译到android运行
|
2月前
|
Android开发 iOS开发
android自动化编译
android自动化编译
|
6天前
|
Android开发
Android编译出现Warning: Mapping new ns to old ns的解决方案
Android编译出现Warning: Mapping new ns to old ns的解决方案
13 3
|
6天前
|
Java Android开发
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
23 1
|
7天前
|
开发工具 Android开发
解决Android Studio编译提示NDK is missing a “platforms“ directory
解决Android Studio编译提示NDK is missing a “platforms“ directory
34 1
|
6天前
|
Android开发
解决Android、Flutter编译时Gradle报错:javax.net.ssl.SSLException: Connection reset
解决Android、Flutter编译时Gradle报错:javax.net.ssl.SSLException: Connection reset
36 0
|
1月前
|
存储 安全 Java
Android面试题之ArrayList源码详解
ArrayList是Java中基于数组实现的列表,提供O(1)的索引访问,但插入和删除操作平均时间复杂度为O(n)。默认容量为10,当需要时会通过System.arraycopy扩容。允许存储null,非线程安全。面试常问:List是接口,ArrayList是其实现之一,推荐使用List接口编程以实现更好的灵活性。更多详情见[ArrayList源码](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/ArrayList.java#ArrayList.Node)。
19 2
|
2月前
|
C# Android开发 开发者
Android gradle编译时字节码处理
Android gradle编译时字节码处理
36 1
|
1月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的高校后勤网上报修系统安卓app附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的高校后勤网上报修系统安卓app附带文章源码部署视频讲解等
29 0
|
2月前
|
Java API Android开发
技术经验分享:Android源码笔记——Camera系统架构
技术经验分享:Android源码笔记——Camera系统架构
31 0