Android Studio - 将构建机器的IP地址导入Android应用程序

时间:2015-02-24 10:50:13

标签: android android-studio gradle

在应用程序开发期间,我希望应用程序能够连接回它所构建的计算机(通过Wifi)。

由于我们有多个开发人员,因此每个开发人员都会使用不同的IP地址。

我该怎么做?

(有些开发人员在Windows 7上使用AndroidStudio,在Ubuntu 14.04LTS上使用其他AndroidStudio。)

3 个答案:

答案 0 :(得分:3)

我会考虑使用Gradle来自定义您的构建,例如将主机的IP添加为构建期间生成的BuildConfig.java文件中的常量。

此页面描述了您可以使用的非常类似的案例:Inject dynamic host IP address with Gradle

答案 1 :(得分:3)

这是我的解决方案。保持干净的git状态真的很有用。

/**
 * Find the first LAN address of the development machine.
 */
def getDevHost = { ->
    def defaultDevHost = InetAddress.getLocalHost()
            .getCanonicalHostName()

    return NetworkInterface.getNetworkInterfaces()
            .findResult(defaultDevHost) {
        def ifOk = it.isUp() &&
                !it.isVirtual() &&
                !it.isPointToPoint() &&
                !it.isLoopback() &&
                !it.getName().startsWith("br-") // 

        if (ifOk)
            return it.getInetAddresses().find {
                it instanceof Inet4Address &&
                        !it.isLoopbackAddress()
            }
        else
            return null
    }
}

我将它用于项目的单个buildType

android {
  // ...

  buildTypes {
    // ...

    dev {
      // ...
      buildConfigField "String", "BACKEND_URL", "\"http://${getDevHost()}:9000/\""
    }
  }
}

答案 2 :(得分:0)

我猜这些事情应该到位

  1. 应为您的工作站分配一个静态IP地址,以便应用程序连接到它。

  2. 可以在此处找到用于编写此类设置的代码。我很久以前就给出了这个答案。

  3. Read here

    适用于Ubuntu

    • 使用make文件并使用上面链接中提到的命令来获取计算机IP。
    • 将IP附加到文件中,从应用程序中的该文件中读取,然后使用它连接到构建计算机。

    我希望它有所帮助。