自定义参数/变量传递给Android模拟器

Joe*_*oel 4 java android environment-variables command-line-arguments

我想将一个参数传递给通过Eclipse启动的android模拟器.这个参数是一个自定义的参数,我将用它来确定服务器的连接地址是"localhost"还是"myserverdomain.com".这是因为每当我在生产环境或本地测试环境中运行程序时,我都不希望有两个二进制文件或两个版本的同一程序.

在普通的Java中,我可以使用命令行参数,并在其中检索它们main(),或者也可以使用自定义环境变量并使用它来检索它们System.getProperty().

我在Android中找不到任何类似的功能.你知道吗?

Cao*_*lte 6

这是可能的,虽然我没有尝试过Eclipse.

从命令行,您可以使用adb启动shell并运行带参数的应用程序.

例如,

adb shell am start -a android.intent.action.MAIN -n org.caoilte.MyActivity -e SOME_KEY some_value -e SOME_OTHER_KEY some_other_value
Run Code Online (Sandbox Code Playgroud)

将使用我可以从包中提取的额外内容开始我的活动,如此,

public class MyActivity extends Activity {

protected void onStart() {
    super.onStart();


    String someKey = null;
    String someOtherKey = null;

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        jsEnv = extras.getString("SOME_KEY");
        serverEnv = extras.getString("SOME_OTHER_KEY");
    }
}
Run Code Online (Sandbox Code Playgroud)