Framework的范围

TT_123456789 2020-07-27 08:34:48 2333

Framework负责APPLICATION FRAMEWORK、ANDROID RUNTIME和LIBRARIES三部分。
a) 系统Manager和Service相关内容
b) 系统接口和jni相关内容
c) 系统功能相关内容(watchdog、vold、binder等)
d) 虚拟机dalvik、art
e) 系统so库相关内容
f) CTS、GTS等预分析
g) Monkey预分析
h) 系统稳定性问题(系统ANR、冻屏、重启、蓝屏等)
i) 系统性能问题
framework基础
语言基础:Java、C++、C
技术基础:进程间通信,多线程,jni,linux相关知识,binder
Android代码管理
代码结构
  framework开发工作方式与应用开发的工作方式是完全不同的,framework开发是基于Android源代码进行的开发,版本管理主要使用:git,repo两种工具。如果想要学习framework开发,必须需要下载一套Android源码。官方下载地址【参考、需翻墙】: https://source.android.com/source/downloading.html,具体的下载编译调试代码的方式可以参考老罗的博客视频,讲解的非常清楚,附上地址(http://0xcc0xcd.com/p/index.php),感谢老罗
当下载完成代码后首先了解一下Android源代码的结构:

├── bionic android上实现的libc库
├── bootable 存放可启动项,如recovery、bootloader等
├── build android编译系统所用到的make文件及其它工具
├── cts android兼容性测试
├── dalvik dalvik虚拟机
├── development 与开发相关的一些东西
├── device 存放需要适配的设备信息
├── external 第三方库
├── frameworks framework部分
├── hardware 硬件相关代码
├── kernel kernel相关代码
├── libcore android上实现的Java基础库
├── Makefile
├── ndk
├── out 编译输出目录
├── packages 包含系统应用、壁纸应用、内容提供者、输入法等
├── prebuilt 预编译好的工具
├── sdk sdk相关内容
├── system 操作系统层次的一些可执行程序和配置文件
├── u-boot 用于引导linux启动的u-boot
而framework开发主要要了解的就是frameworks下面的内容。
代码编译

当把代码下载完毕后需要对源代码整体进行编译,具体方法如下:

1.source build/envsetup.sh
  读取各个board的vendorsetup.sh
2.lunch
   去选择要编译的对象

3.完整系统编译,输出到out/target/product//...

      make -j4(j4为使用四个线程同时编译)

4.如果要单编某个模块,就是用如下命令来编译需要的模块。

   编译bootloader,
      make bootloader
   编译kernel生成boot.img,
      make bootimage
   编译system生成system.img,
      make systemimage
   编译userdata生成userdata.img,
      make userdataimage
   编译recovery生成recovery.img,
      make recoveryimage

当编译好对应的image后,可以使用fastboot将image烧到手机里面:

如何进入fastboot:
   开机状态下执行adb reboot bootloader
   关机状态组合键:home+power
1.检查连接设备
     Fastboot devices
2.烧写system.img
   Fastboot flash system system.img
3.烧写boot.img(recovery)
   fastboot flash boot boot.img(recovery.img)
4.烧写bootloader
Fastboot flash 2ndbl u-boot.bin

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
TT_123456789
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区