Android深入浅出系列课程--Lesson11 Android.Framework源码下载及编译

Framework开发入门(一)之源码下载 本课程记录自己如何入门Framework 阅读详情

大家好,上一讲我们介绍了以后的课程的大体安排,这一讲我们将进Android.Framework源码下载及编译
        课程目标:
    Android Framework 源码下载及编译
        重点难点:      
    Android不同版本源代码环境配置的不同
        考核目标:
        下载Android Framework源码的过程
        介绍Android源码版本控制用什么?
        什么是Repo?
        课后练习:
        在UBUNTU下面下载和编译Android Framework Source Code
        思考如何在Windows下下载 以及 编译 android源码

        一、课程前说的话:
        关于下载及使用源码的平台---Linux、Mac、Windows
如何选择UBUNTU,对版本的选择
        2.6G的源码存储空间以及10G的下载空间
        真的只能在Linux和MacOS上下载和Building吗?
        二、准备Linux下的环境:
        建议考虑Ubuntu 10.04 之后版本 ,建议用64bit系统 ,我采用的是11.04
        Python 2.4 -- 2.7, 下载地址:python.org - 11.04自带的是2.7.1
        JDK 6 Gingerbread及更新版本; JDK 5 Froyo及更早. 下载地址: java.sun.com
        Git 1.5.4 之后版本. 下载地址: git-scm.com.- 通过apt-get 自动安装1.7.4.1  sudo apt-get install git
        需要安装一些类库
        (可选) Valgrind, 下载地址: valgrind.org.
        1、检查并安装Python&Git
        2、安装JDK
        关于纠结的JDK,Froyo及以前版本请用JDKS,之后的用JDK6嫌时间长可以下载好共享到Ubuntu安装
        如何在Ubuntu和Windows共享文件
        3、安装需要的包
        4、配置USB访问
       
        三、下载源码
        安装Repo
        初始化Repo Client
        开始同步文件
        验证Git Tag

        四、Building&Flash
        1、初始化环境
        2、选择一个Build Tag
        Build Name
       Build name                                 Device                                                              Notes
         generic                                       emulator                                           lowest-common denominator
            full                                       emulator                           fully configured with all languages, apps, input methods
          full_crespo                                 crespo                                       full build running on Nexus S ("crespo")



        Build Type
           Build Type                                                               Use
               user                                           limited access; suited for production
            userdebug                        like "user" but with root access and debuggability; preferred for debugging
                 eng                                         development configuration with additional debugging tools


        3、Make
        1)、系统的应用程序在哪儿?
        2)、Make编译的是所有内容么?是否包含内核的SDK
       出现问题,Can not build System 32bit...
        解决办法:
        需要进行如下修改即可,
        将
        ./external/clearsilver/cgi/Android.mk
        ./external/clearsilver/java-jni/Android.mk
        ./external/clearsilver/util/Android.mk
        ./external/clearsilver/cs/Android.mk
        四个文件中的
        LOCAL_CFLAGS += -m64
        LOCAL_LDFLAGS += -m64  
        注释掉,或者将“64”换成“32”
        LOCAL_CFLAGS += -m32
        LOCAL_LDFLAGS += -m32


        然后,将
       ./build/core/main.mk 中的
       ifneq (64,$(findstring 64,$(build_arch)))
       改为:
       ifneq (i686,$(findstring i686,$(build_arch)))

       又出现问题了,Make不成功
       In file included from external/qemu/target-i386/kvm.c:19:
       /usr/include/linux/kvm.h:215: error: field 'arch' has incomplete type
       /usr/include/linux/kvm.h:383: error: field 'arch' has incomplete type
       make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/emulator-target-i386_intermediates/target-  i386/kvm.o] 错误 1   
        解决办法
        只要在下载源码的目录下执行下面这句,然后再make就不会再出现这个错误了
        repo download platform/external/qemu 22776/1

         4、编译内核
         5、编译SDK
         6、调用Emulator启动编译好的ROM
          export ANDROID_PRODUCT_OUT=~/[SourceCodeFolder]/out/target/product/generic/
          cd ~/[SourceCodeFolder]/out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates./emulator

        五、源码下载编译过程常见问题
        Python版本过低
        JDK不匹配
        安装了Java之后Java环境不生效
        操作系统位数不匹配
        无USB访问权限
        缺少类库错误
        Ubuntu11.04编译失败错误


本讲对Android.Framework源码下载及编译做了详细介绍,下一讲将进入Android多线程系统概述,内容预告:AFF110525_Android多线程系统概述,敬请期待。



特别推荐新课程:Android开发高端课程
http://www.mobidever.com/forum.php?mod=viewthread&tid=2098
本课视频地址:http://www.tudou.com/programs/view/ul8Yridzt0U/
http://www.tudou.com/programs/view/-ofVwQT57ng(土豆网)
课程下载地址:http://www.verycd.com/topics/2900036/ (VeryCD电驴)
作者博客:http://www.mobidever.com/forum.php (Sundy-Android开发联盟)
Android12 源码下载、编译、刷机、单编调试Framework 由于在国内使用 Google 的官方下载站点,会有下不动的情况,有时候 .repo 都下载不下来,所以本教程是以国内的镜像站点为例子,如果你有方法可以爬墙,那么可以简单参考 官方的教程 https://source.android.google.cn/source/downloading。代码下载完成之后,我们先不着急编译,如果要想在真机上跑,需要下载一些厂商闭源的驱动文件,这样后续编译的代码才可以跑到真机上,此处对应的。直接下载的代码使用的是 master 分支,驱动程序需要在这里下载。 阅读详情

相关推荐

Android Framework | AOSP源码下载及编译指南(基于Android13)

AOSP(Android Open Source Project)是Android操作系统的开源项目,通过下载和编译AOSP源码,您可以获得原始的Android系统,并进行定制和开发。本教程将向您介绍如何下载AOSP源码并进行编译的步骤。如何只是浏览查看AOSP源码,则没必要下载源码,可以使用google提供的Code Search工具进行浏览查阅,这个工具用起来堪比IDE,并且非常流畅,但是访问这个站点需要翻墙操作。

虎哥LoveDroid 2766

深入Android Framework开发(入门篇)

广大的Android应用开发者是不是对Android系统充满着好奇,是不是很想学习Android系统开发,可惜自己学习难度又太大,本课程将手把手教你学Android Framework开发,带你走进Android系统开发的殿堂,全课程以实战为主,让你自己动手可以定制自己喜欢的Android系统,让你的Android职业道路越走越顺。 学完本课程能让你学会如下知识点: -学习Framework背景及它的巨大作用-Android源码环境搭建及让自己系统第一次跑起来-学习Frameowork开发的一些必要基础知识-学习怎么进行Android源码定位分析,实例:Activity启动流程源码分析-实战开发Frameowork项目--去除第三方应用入口广告页

Android12版本-framework源码jar

自己编译的 Android12版本-framework源码jar 来源:AOSP源分支 android-12.1.0_r11

Android Framework实战开发篇

广大的Android应用开发者是不是对Android系统充满着好奇,是不是很想学习Android系统开发,可惜自己学习难度又太大,本课程将手把手教你学Android Framework开发,带你走进Android系统开发的殿堂,全课程以实战为主,让你自己动手可以定制自己喜欢的Android系统,让你的Android职业道路越走越顺。学完本课程能让你学会如下知识点:-学习对BootAnimation的启动源码分析-学习对BootAnimation的opengl绘制源码分析-学习对BootAnimation的zip方式绘制源码分析-学习制作一个带有时间的显示的BootAnimation的动画-深入理解zip方式定制BootAnimation-学习android native层的posix线程实现-学习android native层封装的Threads类源码及使用-学习zygote的启动源码分析-学习zygote的进程创建过程源码分析-学习zygote启动systemserver过程分析-学习systemserver的启动分析-学习systemserver的HomeActivity的启动源码分析-学习systemserver与zygote进行socket通信创建进程源码分析-学习systemserver启动FallbackHome的Activtiy-学习FallbackHome结束及跳转Launcher源码分析-学习native c/c++层的堆栈打印

基于labview实现MYSQL数据库查询功能

基于labview实现MYSQL数据库查询功能 前言: labview是一款功能强大的图形化编程软件,也就是俗称的G语言。 本篇将介绍如何利用labview对MYSQL进行列表分页,范围查询及模糊查询等几个可广泛应用的简易功能,但事实上labview并不擅长处理数据库,下面详细代码可体现。 数据库的环境配置方面的问题这里就不赘述了。 我们直接进入主题。 1.以下为查询界面 2.分页实现细节: ...

qq470783138的博客 7556

解决rt-thread上使用SPI+DMA

首先阐述下遇到的问题 使用SPI读取icm20602数据,读取频率为1000hz,使用stm32f407主控,发现CPU占用率达到了70%,将此线程注释掉后CPU占用率掉到25%,看来这里要着重优化,便萌生了使用DMA的想法。 使用SPI+DMA要进行的配置 1.开启RTT设备驱动。点击自己的工程 ->RT-Thread Setting2.在board.hzhong3.在board.c文件里加入以下函数,此函数受设备框架调用 void HAL_SPI_MspInit(SPI_HandleTypeDef

响望的博客 8085

android framework实战体验课

广大的Android应用开发者是不是对Android系统充满着好奇,是不是很想学习Android系统开发,可惜自己学习难度又太大,本课程将手把手教你学Android Framework开发,带你走进Android系统开发的殿堂,全课程以实战为主,让你自己动手可以定制自己喜欢的Android系统,让你的Android职业道路越走越顺。

学 Simulink—— 基于高频方波电压注入的表贴式永磁电机无感控制仿真

本文手把手教授基于Simulink的高频方波电压注入法实现表贴式永磁同步电机(SPMSM)无传感器控制。针对表贴式电机微弱凸极特性(Lq/Ld≈1.05-1.15),详解方波注入相比正弦注入的优势:通过5kHz方波(PWM频率半值)集中能量提升信噪比,并采用相邻周期电流直接相减的零延迟分离技术。系统架构包含高频注入器、无滤波器信号分离模块、锁相环观测器和磁饱和极性辨识等关键环节,提供参数设置经验(如注入幅值10-15%Vdc)和典型性能指标(位置误差<0.2rad)。特别强调工程实现要点:PWM同步时

xiaoheshang_123的博客 167

android framework实战-跨进程通信binder专题

千里马8年Android系统及应用开发经验,曾担任过美国unokiwi公司移动端技术总监兼架构师,对系统开发,性能优化,应用高级开发有深入的研究,Android开源定制ROM Lineage的贡献者之一,国内首家线下开辟培训Android Framework课程,拥有2年的Android系统培训经验。成为腾讯课堂专业负责android framework课程分享第一人,致力于提高国内android Framework水平Android Framework领域内是国内各大手机终端科技公司需要的人才,应用开发者都对Android系统充满着好奇,其中的binder是重中之重,都说无binder无Android,binde是Android系统的任督二脉。课程水平循序渐进,由中级再到高级,满足各个层次水平的android开发者。1、灵活使用binder跨进程通信,在app端对它的任何api方法等使用自如2、可以单独分析android系统源码中任何binder部分,分析再也没有难度3、掌握binder驱动本质原理,及对应binder驱动怎么进行跨进程通信,及内存等拷贝方式数据等4、对binder从上层的java app端一直到最底层的内核binder驱动,都可以顺利理通5、针对系统开发过程中遇到的binder报错等分析方法,及binder bug案例学习6、针对面试官任何的binder问题都可以对答自如7、socket这种跨进程通信实战使用8、针对android源码中使用的socket源码轻松掌握9、android系统源码中最常见的socketpair中双向跨进程通信10、使用socket实现一个可以让app执行shell命令的程序

机器学习与深度学习基础概念

本篇主要介绍机器学习主要概念,包括不限于标签、特征、样本、训练、模型、回归模型、分类模型、泛化、过拟合、预测、平稳性、训练集、验证集、测试集。

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 3万+

5.30华为OD机试真题 新系统 - 链表数字游戏 (Java/Py/C/C++/Js/Go)

5.30华为OD机试真题 新系统 - 链表数字游戏 (Java/Py/C/C++/Js/Go)

算法大师! 1117

[Android] Android源码下载 及 编译

上述异常是因为repo版本和python不匹配造成,如果出现上述异常,则在后续执行repo的时候都需要机上 python3 以指定 python 解释器。3.关联仓库(只是关联仓库信息,不会同步到本地磁盘)如果需要其他分支,则改变 -b 的参数,见。2.配置 git 信息(已经配置则跳过)4.同步代码到本地磁盘。

ykun089的博客 446

CUDA&PCL 点云体素下采样

CUDA&PCL 点云体素下采样

dayuhaitang1的博客 1268

全网最详Android framework从入门到精通【程序员必看】

Android Framework在Android开发中扮演着至关重要的角色。它提供了丰富的功能和工具,使得开发者能够轻松创建高质量、稳定可靠的Android应用程序。因此,对于Android开发者来说,熟练掌握Android Framework是必不可少的。在这里为大家提供一份《Android framework从入门到精通》,祝大家学完后都能升职加薪。有需要的朋友可以扫描下方二维码,免费获取更多相关学习资料。

Gaga246的博客 8893

十五、SAP-物料需求计划(MRP)

业务逻辑、功能讲解、图文解析、章节总结

m0_72403327的博客 1092

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Android Framework全套学习教程

转:Android Framework全套学习教程

明耀的博客 8395

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

全网最全最通俗易懂的Android Framework知识点汇总,入门到精通,完全学会

Framework其实可以简单的理解为一些API的库房,android开发人员将一些基本功能实现,通过接口提供给上层调用,可以重复的调用我们可以称Framework层才真正是Java语言实现的层,在这层里定义的API都是用Java语言编写。但是又因为它包含了JNI的方法,JNI用C/C++编写接口,根据函数表查询调用核心库层里的底层方法,最终访问到Linux内核。那么Framework层的作用就有2个。用Java语言编写一些规范化的模块封装成框架,供APP层开发者调用开发出具有特殊业务的手机应用。

m0_64365896的博客 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android 如何查看Framework WMS源代码

Android 如何查看Framework WMS源代码

qq_44023485的博客 462

快速下载 Android framework 源码

github:https://github.com/android/platform_frameworks_base google 官方:https://android.googlesource.com/platform/frameworks/base.git git clone -b android10-d4-s1-release https://github.com/aosp-mirror/platform_frameworks_base.git --depth 1 选择android10的..

huihuishou_su的博客 895

开源软件镜像站点列表

阿里云开源镜像站:http://mirrors.aliyun.com/ 网易开源镜像站:http://mirrors.163.com/ 搜狐开源镜像站:http://mirrors.sohu.com/ 北京交通大学开源镜像站:http://mirror.bjtu.edu.cn 兰州大学开源软件镜像站:http://mirror.lzu.edu.cn/ 厦门大学开源软件镜像站:...

开发小兵 644

尚学堂android课程,通俗易懂的Android framework教程

在android开发中我们会遇到各种各样的非常奇怪的问题,有些问题是百思不得骑姐。其实这些问题大都是因为我们不了解安卓内部运行原理,知其所以然才是我们的目的。任何控制类程序都有一个入口,安卓应用程序肯定也是有滴。Android framework包含三个小伙伴:服务端、客户端、Linux驱动。服务端服务端主要包含两个狠重要的类:WindowManagerService(WMS)和ActivityM...

weixin_33955394的博客 396

Android framework完整源码下载

包括cpp等native代码。可zip打包下载。 https://github.com/android/platform_frameworks_base/branches/stale Android线上源码 http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/ ...

weixin_30687051的博客 702
上一篇: Android深入浅出系列课程---Lesson10 SHW110518_关于课程顺序的说明
下一篇: Android深入浅出系列课程---Lesson12 AFF110525_Android多线程系统概要
sundy_android
博客等级 码龄15年 5粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值