首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向VS2015 Android调试器提供命令行参数?

如何向VS2015 Android调试器提供命令行参数?
EN

Stack Overflow用户
提问于 2016-02-19 17:18:04
回答 1查看 717关注 0票数 2

我正在开发一个在包括Android在内的许多平台上都支持的库。这个库是用Google基础设施进行单元测试的。我目前正在使用Visual 2015的跨平台特性来构建、部署和调试。测试套件变得相当大,运行整个过程需要一段时间。使用Google基础设施,可以传递命令行参数来筛选出要运行的测试(-gtest_ filter .)。对于诸如Windows、PS4和XboxOne这样的平台,通过在Properties >Configuration-> Debugging -> Command参数中设置Visual,这是很容易实现的。但是,对于跨平台开发项目和包(AndroidProj),这个调试器属性似乎不存在。这是安卓本机活动项目属性的快照。

我知道Visual扩展提供了类似于我正在寻找的特性,如这里所示,但这不是一个可行的选择,因为我想避免支付扩展许可。

我如何向Android调试器提供命令行参数,就像为本地Windows调试器提供命令行参数一样?

EN

回答 1

Stack Overflow用户

发布于 2017-05-10 17:22:00

我的一个同事在我贴出这个问题后不久就找到了答案。这是我们解决问题的方法。

在VS2015中,在Android跨平台包/应用程序项目(Androidproj)的属性页面中,更确切地说,在调试选项卡中,有启动活动字段。此字段可用于传递命令行意图参数。在安装包后启动调试器时,它将执行以下命令:

com.YourPackageName/TheContentOfLaunchActivityField. adb.exe am start -D -n

默认情况下,在启动活动字段中指定了启动程序活动(android.app.NativeActivity),但是您可以提供进一步的意图参数。它们的列表可以在以下文档中找到:https://developer.android.com/studio/command-line/adb.html#IntentSpec

在我们的情况下,我们需要向应用程序提供字符串数据(例如:-gtest_filter=.),所以我们使用了意图参数-e extra_key extra_value。

在我们的主要函数中,我们可以使用下面的代码和一些解析来检索额外的值(未显示)。它使用JNI ()。

代码语言:javascript
复制
        JNIEnv* env = NULL;
        state->activity->vm->AttachCurrentThread(&env, 0);

        Private::JNIObjRef nativeActivityObject(env, state->activity->clazz);
        jclass nativeActivityClass = env->GetObjectClass(nativeActivityObject.Get());

        jmethodID getIntentID = env->GetMethodID(nativeActivityClass, "getIntent", "()Landroid/content/Intent;");
        Private::JNIObjRef intentObject(env, env->CallObjectMethod(nativeActivityObject.Get(), getIntentID));            
        jclass intentClass = env->FindClass("android/content/Intent");

        jmethodID getExtrasID = env->GetMethodID(intentClass, "getExtras", "()Landroid/os/Bundle;");
        Private::JNIObjRef extrasObject(env, env->CallObjectMethod(intentObject.Get(), getExtrasID));            
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35511049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档