You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio中安装自定义APK并创建对应测试、获取AndroidManifest.xml?

解决Android UI自动化中APK导入、Manifest获取及测试关联问题

一、在Android Studio中安装自定义APK

  • 直接通过ADB命令安装:连接设备后,打开Android Studio的Terminal,执行adb install /本地APK文件路径/your-app.apk,无需通过Analyze APK功能导入
  • 若已将APK传到设备,可执行adb install /sdcard/your-app.apk(需先把APK拖到设备的/sdcard/目录,可通过Device File Explorer操作)

二、获取APK对应的AndroidManifest.xml文件

方式1:通过Android Studio的APK分析工具

  1. 打开Build > Analyze APK,选择目标APK
  2. 在左侧面板的根目录下找到AndroidManifest.xml(AS会自动反编译为可读格式)
  3. 右键该文件,选择Save As即可导出到本地

方式2:通过AAPT命令

打开Terminal,执行以下命令直接导出Manifest内容到文件:

aapt dump xmltree your-app.apk AndroidManifest.xml > manifest.xml

注:需确保AAPT工具在系统环境变量中,或使用Android SDK路径下的build-tools/版本号/aapt执行命令

三、关联APK与UI测试代码

1. 配置测试模块的build.gradle

在测试模块(通常是app模块)的build.gradle(Module级)中添加以下配置:

android {
    defaultConfig {
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        // 替换为被测APK的包名(从Manifest的package属性获取)
        testApplicationId "com.your.target.app.package"
    }
}

dependencies {
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
}

2. 指定被测APK并运行测试

  • 通过Android Studio界面配置:
    1. 打开Run Configuration,选择你的测试类
    2. 在Deployment选项中,选择APK from app bundle or APK,然后选中目标被测APK
    3. 点击运行按钮即可启动测试
  • 通过ADB命令运行:
    先确保被测APK和测试APK都已安装到设备,然后执行:
    adb shell am instrument -w com.your.test.package/androidx.test.runner.AndroidJUnitRunner
    
    替换com.your.test.package为你的测试模块包名

3. 基础测试代码示例

以Espresso测试为例,需替换为被测应用的实际Activity和控件ID:

import androidx.test.espresso.Espresso;
import androidx.test.espresso.matcher.ViewMatchers;
import androidx.test.ext.junit.rules.ActivityScenarioRule;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(AndroidJUnit4.class)
public class AppUITest {
    // 替换为被测应用主Activity的全类名(从Manifest的activity标签获取)
    @Rule
    public ActivityScenarioRule<MainActivity> activityRule = 
        new ActivityScenarioRule<>(MainActivity.class);

    @Test
    public void verifyMainPageDisplayed() {
        // 验证主页面目标控件是否显示
        Espresso.onView(ViewMatchers.withId(R.id.main_content)).check(ViewMatchers.isDisplayed());
    }
}

内容的提问来源于stack exchange,提问作者Priya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:16:01