美文网首页
Android顶层应用源码学习

Android顶层应用源码学习

作者: 戎码虫 | 来源:发表于2019-06-26 00:46 被阅读0次

    概述

    怎样读Android源码

    这个问题是比较个性化的,因为不同的人从事着不同的工作,有的人从事应用开发,可能对Java层东西感兴趣;有的人从事Framework开发,可能对Framework层感兴趣;有的从事硬件开发,可能对底层实现感兴趣。
    这个都因人而异,但是有一点,不能盲目地毫无目的地看源码,因为这样的话最终你会淹没在AOSP的大海里,看了一年半截啥都看了,却又感觉都没看透,别人问你源码的东西,都能说个一二,但是一往深了说,就不知所以了。
    所以对于AOSP源码,不在于多,而在于精,你不要试图把所有的源码都看懂,你只要对自己感兴趣的那部分深入研究就可以,因为即便是Google工程师也不可能把AOSP全部读完。
    --摘自以下博客

    Android的源码结构
    • 第一层:应用程序层(applications)对应根目录下platform/packages/apps
    • 第二层:应用程序框架层(application framework)对应根目录下的platform/frameworks
    • 第三层:运行库层包括运行库(libraries)和android运行时环境(android runtime)
    • libraries对应目录很多,其中libc库对应的是platform/bionic
    • android运行时环境,Core Libraries 对应根目录下的platform/libcore,Dalvik Virtual Machine 对应根目录下的platform/dalvik ,不过现在已经是ART了,所以目录是platform/art
    • 第四层:Linux内核层对应根目录下的kernel,每一个目录对应了一个kernel的版本,因为Android要兼容各种芯片,我们主要看的有两个,一是goldfish,这是模拟器用的内核,一是msm,这个是高通的内核。
      --摘自以下博客

    翻github的时候翻到两篇关于源码不错的博客:
    如何下载Android代码:
    https://github.com/foxleezh/AOSP/issues/1
    如何阅读Android代码:
    https://github.com/foxleezh/AOSP/issues/2
    查看Android目录结构及源码网站:
    http://androidxref.com

    上层APP源码下载

    我们以Browser2应用为例,根据自己需要下载的应用更换。
    官方下载地址:https://android.googlesource.com/platform/packages/apps/Browser2,由于墙的原因,我们得替换成国内的镜像网站:https://aosp.tuna.tsinghua.edu.cn/platform/packages/apps/Browser2
    我们通过git版本控制工具下载:
    git clone https://aosp.tuna.tsinghua.edu.cn/platform/packages/apps/Browser2

    $ git clone https://aosp.tuna.tsinghua.edu.cn/platform/packages/apps/Browser2
    Cloning into 'Browser2'...
    remote: Counting objects: 607, done.
    remote: Compressing objects: 100% (582/582), done.
    remote: Total 607 (delta 180), reused 0 (delta 0)
    Receiving objects: 100% (607/607), 190.73 KiB | 0 bytes/s, done.
    Resolving deltas: 100% (180/180), done.
    
    apps路径

    Android Studio打开

    因为下载下来的系统应用为 module类型,所以我们先自建一个工程,再Import Module 将系统应用APP导入到工程中,运行APP就OK了。

    现在都是Gradle控制APP的版本信息,将AndroidManifest.xml中的版本删除

    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
    
    运行成功

    总结

    研究系统APP源码或者在开发跟系统APP类似的APP时,我们可以将系统的顶层APP的源码下载下来运行一下,通过Android Studio 可以更加方便的查看源码。

    相关文章

      网友评论

          本文标题:Android顶层应用源码学习

          本文链接:https://www.haomeiwen.com/subject/erxzqctx.html