比如frameworks\base\core\java\android\hardware\Camera.java,对应system\framework\framework.jar,怎么知道是对应framework.jar呢,framework\base有Android.mk文件,在base目录下就没有Android.mk文件了,见frameworks\base\Android.mk给出了依据:

include $(CLEAR_VARS)

# FRAMEWORKS_BASE_SUBDIRS comes from build/core/pathmap.mk

LOCAL_SRC_FILES := $(call find-other-java-files,$(FRAMEWORKS_BASE_SUBDIRS))

LOCAL_JAVA_LIBRARIES := core-oj core-libart core-lambda-stubs conscrypt okhttp core-junit bouncycastle ext //表示framework.jar链接(不是包含)这些jar文件,需要调用这些jar文件的类函数

LOCAL_MODULE := framework

include $(BUILD_JAVA_LIBRARY)//编译成jar类

LOCAL_SRC_FILES 告诉编译系统源代码目录,FRAMEWORKS_BASE_SUBDIRS在build\core\pathmap.mk定义如下

## A list of all source roots under frameworks/base, which will be# built into the android.jar.#FRAMEWORKS_BASE_SUBDIRS := \$(addsuffix /java, \    core \    graphics \    location \    media \    media/mca/effect \    media/mca/filterfw \    media/mca/filterpacks \    drm \    opengl \    sax \    telecomm \    telephony \    wifi \    keystore \    rs \ )

Camera.java在core下,android编译系统就会把core下的java编译进来

在out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.dex可以找到Camera.java的cameraInitVersion()函数

Android系统framework的base目录下编译生成对应oat和art_第1张图片

Camera.java首先被编译生成为

out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes\android\hardware\Camera.class,然后生成framework_intermediates\classes\class.jar,再是framework_intermediates\classes\classes.dex和classes2.dex,接着是out\target\product\msm8937_64\system\framework\arm和arm64下的boot-framework.oat,在此文件中我们找到了cameraInitVersion()函数

Android系统framework的base目录下编译生成对应oat和art_第2张图片

boot-framework.oat是android可以直接识别的文件。

 

更多相关文章

  1. android recovery 主系统代码分析
  2. Android系统特性和系统架构
  3. Android 6.0替换原系统Launcher傻瓜教程
  4. android ndk开发中常用的系统自带网络命令
  5. AndroidManifest.xml文件详解(manifest)

随机推荐

  1. Android(安卓)-- 分享功能和打开指定程序
  2. 转:android checkbox样式
  3. Android开源组件SlidingMenu的基本使用方
  4. 异常:Unknown features (Run Configuratio
  5. android中在androidmanifest.xml设置权限
  6. Activity configuration change
  7. Android初学
  8. 百度地图SDK for Android(安卓)v2.1.2全
  9. Android程序报错:程序包org.apache.http不
  10. Android系统Intent中的Uri使用