美文网首页
Android Studio 在线调试Framework代码

Android Studio 在线调试Framework代码

作者: 行走中的3卡 | 来源:发表于2022-09-22 11:21 被阅读0次

    在App 开发过程中,对于App调试相对简单,仅需要设置断点,然后启动AS的Debugger就可以了。
    同样,对于Android Framework 的代码,我们也是可以利用AS 进行在线调试的,
    因为有时想确认Framework流程(例如启动Activity)下某个变量的值,要编译Framework代码再push进设备就相当麻烦。
    这里,我们假设要确认启动应用时,start activity的一些细节,要调试ActivityTaskManagerService代码

    一、环境:

    1.Android Studio 2020.3.1版本
    2.SDK : android-32
    3.模拟器: Android Studio 下载的API-32的设备

    二、调试过程

    1.AS新建一个简单的项目

    其中app/build.gradle 需要定义SDK

    android {
        compileSdk 32
        defaultConfig {
            applicationId "com.example.android12debug"
            //...
            targetSdk 32
            //...
        }
    

    2.将要调试的Framework代码拷贝到工程中。

    例如 ActivityTaskManagerService.java

    则需要根据该文件的包名, 先新建文件目录 com.android.server.wm,在把文件放进去 package.PNG

    注:AS 肯定会提示报错,因为ActivityTaskManagerService用到的很多包或者变量都找不到,
    这个不影响,我们不需要编译工程

    3.点击工具栏的AVD ,启动一个API-32的模拟器

    (如果没有,则可以下载一个)

    4.在ActivityTaskManagerService 设置断点

    debug point.PNG

    5.工具栏点击 Attach Debugger to Android Proccess (或者点击Run ->)

    attach debug.PNG

    然后选择进程: system_process

    choose process.PNG

    6.点击模拟器任意一个应用启动

    则可以在线调试了


    debug stack.PNG

    相关文章

      网友评论

          本文标题:Android Studio 在线调试Framework代码

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