0
  • 最佳答案

    说下我一开始怎么弄AOSP源码的吧.


    1、单个模块导入;比如要看Setting就直接从Android Studio中导入Setting模块的代码,SystemUI就导入SystemUI模块的代码,而不是全部导入。全部导入太慢而且作用不大;


    2、忽略报红;报红的原因多是没有引入系统相关的依赖,一开始我也是纠结于这个报红问题,想方设法地引入依赖去解决,后来发现也是无用功(可能真的能解决,但是我没找到正确的方法,如果看到这个回答的朋友有能够解决报红的方法,欢迎补充)。报红本身不影响阅读代码,每次我找到要改的地方,然后改,编译,刷机,看效果,就行了。

    1419483998903615490  评论     打赏       再见二丁目
    • 断点-含光君  回复 @再见二丁目
      惊现大佬
      断点-含光君 2021-11-18 09:21   回复 1139423796017500160
    • happy186  回复 @断点-含光君
      只导入Setting模块的代码的话,as里头基本爆红(这个如果不管的话),as没有识别成android工程,logcat的栏目和 在线debug的按钮都不显示在线的应用程序, 这个也是直接硬刚么
      happy186 2021-11-18 09:44   回复 1459742018287714305
    • 拉大锯  回复 @happy186
      这个时候你的AS只是编辑器,方便你编辑,编译你还是用你的原生系统编译吧。除非你的Settings是你自己新写的。我们一般定制的话,会有专门的应用程序员去写Settings,Launcher,相机,相册之类的。如果修改原生的内容,导入到AS只是作为编辑,然后再对比到系统上,进行编译,安装。有些需要重新编译刷机。
      拉大锯 2021-11-18 09:59   回复 1153952789488054272
    • 再见二丁目  回复 @happy186
      楼上大锯哥说的很对,AS只是编辑器。你可以导入模块代码快速、方便地进行代码修改,完事后再将修改的代码同步到aosp中,然后执行编译。Framework层的代码我现在只能通过这种方式进行修改并且看到效果,最多就加上Log看看日志啥的。
      再见二丁目 2021-11-18 11:38   回复 1419483998903615490
    • happy186  回复 @再见二丁目
      好勒,谢谢
      happy186 2021-11-18 14:41   回复 1459742018287714305
    • happy186  回复 @拉大锯
      昨天把Settings,SettingsLib源码整出来,搞了framework.jar和其他几个jar,现在少量爆红,稍微可以避免盲写涉及两个模块引用部分了。 距离直接运行源码还差些配置,先暂停,要出活了
      happy186 2021-11-19 10:19   回复 1459742018287714305
    • happy186  回复 @拉大锯
      我用的8.0的源码
      happy186 2021-11-19 10:20   回复 1459742018287714305
    • 拉大锯  回复 @happy186
      直接运行不是问题,问题是编译,你得各处依赖有。运行不难呀,写个脚本就完事了:卸载-->安装-->拉起主的Activity。就这样咯,对吧。
      拉大锯 2021-11-19 10:29   回复 1153952789488054272
    • 再见二丁目  回复 @happy186
      可以把你说的这个过程(如何做到少量爆红)的写个文章,我也想学习一下。
      再见二丁目 2021-11-19 17:53   回复 1419483998903615490
    • happy186  回复 @再见二丁目
      好,后面发个文章上来
      happy186 2021-11-20 11:19   回复 1459742018287714305
    • happy186  回复 @再见二丁目
      https://blog.csdn.net/yyzsyx/category_11101198.html
      happy186 2021-12-02 08:45   回复 1459742018287714305
    • 再见二丁目  回复 @happy186
      关注了
      再见二丁目 2021-12-02 11:35   回复 1419483998903615490
  • 你说得比较模糊,我没理解好。


    源码导入,各种报错 R.layout 中的R爆红,资源R.string 也爆红,就像另外一个同学的回答,你是要修改原生的应用还是framework代码?


    如果你修改原生的应用代码,比如说设置,相机这些,其实我们一般不改的,会自己新写一个定制的。如果要修改,比如说SystemUI之类的,比如说InCallUI之类的,单个导入,我又不跑起来,只是做为编辑器而已,我也不编译。修改完以后呢,用beyond compare进行对比到服务器上,在服务器上进行编译即可。


    如果要进行系统的源码阅读,方便跳转和查找之类的,可以可选地导入大部分代码,不用全部导入。可以修改对应的配置文件,这个会在接下来的课程有,你可以先参考一下这些文章,随便一搜就有。


    http://wuxiaolong.me/2018/08/15/AOSP3/


    如果你会用source insight也可以。


    当然,通过一些手段,也是可以调试系统代码的,这个就看后期的表演吧。


    另外还可以依赖自己编译的framework.jar,修改了特定的代码的话。


    遇到问题再发帖子吧,把你的具体操作帖上,你这个比较泛。具体到你的实际操作和遇到的问题。


    1153952789488054272  评论     打赏       拉大锯
    • happy186  回复 @拉大锯
      好的,谢谢,我在用这个Beyond Compare工具了
      happy186 2021-11-18 14:41   回复 1459742018287714305
    • 拉大锯  回复 @happy186
      嗯,这是个好东西,团队开发中。
      拉大锯 2021-11-18 15:18   回复 1153952789488054272
相关问题
幻影~ · 提问
2024-04-13 20:13 10 2
幻影~ · 找工作
2024-04-07 10:44 16 2
幻影~ · 问题
2024-03-31 17:20 7 2
TONYGFX · AOSP
2024-03-28 17:11 4 2