Java 传递给Android emulator的自定义参数/变量

Java 传递给Android emulator的自定义参数/变量,java,android,environment-variables,command-line-arguments,Java,Android,Environment Variables,Command Line Arguments,我想把一个参数传递给通过Eclipse启动的android仿真器。这个参数是一个自定义参数,我将使用它来确定要连接的服务器地址是“localhost”还是“myserverdomain.com”。这是因为每当我在生产环境或本地测试环境中运行程序时,我不希望同一程序有两个二进制文件或两个版本 在纯Java中,我可以使用命令行参数,并在main()中检索它们,也可以使用自定义环境变量,并使用System.getProperty()检索它们 我在Android中找不到任何类似的功能。你知道吗?当你启动

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

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


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

当你启动模拟器调试你的应用程序时,就像在设备上安装一样。模拟器不仅仅是一种运行应用程序的机制,它几乎是一部手机。创建一个命令行选项来将数据传递给应用程序会有点复杂,因为没有
main(String[])
,并且需要几个选项来确定何时以及如何传递命令行选项


告诉应用程序运行哪个服务器可以通过两种不同的方式完成。首先,您可以将其设置为。其次,您可以检测正在运行的设备和其他值。使用时也有一些选项。另外,为什么您要开发应用程序,您可以让用户使用或作为触发器来决定。

这是可能的,尽管我没有尝试通过Eclipse来实现

从命令行,您可以使用启动和运行带有参数的应用程序

比如说,

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
将以我可以从包中提取的额外内容开始我的活动

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");
    }
}

您试图查找的信息是您是在仿真器上还是在真实设备上,还是在设备的主机名上?否我需要传递自己的变量没有通过仿真器的命令行将仿真器命令行参数传递给应用程序或设置环境变量的机制。