0

我在 Linux 上使用 Eclipse for Android SDK,并寻找一种将编译的日期和开始时间添加到其中一个 xml 文件的方法。我喜欢在设备上查看我正在使用的构建版本,而无需在每个编译步骤之前手动更新此信息。

到目前为止,通过搜索网络,我只找到了“使用蚂蚁”之类的提示。

我想我必须使用 /proc/driver/rtc 这是由 linux 内核提供的动态“文件”,其中包含实时更新的行,其中包含冒号分隔的文本,例如“rtc_date”和“rtc_time”。包括它并使用设备上的应用程序来获取提取的信息。

有没有更好的办法?就像通过了解时间或从proc中剥离信息并将其放在 xml 文件中的编译时间来获得 Eclipse?

这是我第一次使用 eclipse,所以如果我问了一些明显或不可能的问题,请原谅。

问候 ct

4

2 回答 2

0

我正在使用此代码来获取应用程序构建时间。我知道这不会输出到 XML,但是如果您试图获取应用程序的构建时间,这应该可以。

private long getAppBuildTime() {
    if(cachedAppBuildTime == null) {
        try{
            ApplicationInfo ai = appContext.getPackageManager().getApplicationInfo(appContext.getPackageName(), 0);
            ZipFile zf = new ZipFile(ai.sourceDir);
            ZipEntry ze = zf.getEntry("classes.dex");
            cachedAppBuildTime = ze.getTime();
            log("app build time " + cachedAppBuildTime);
        }catch(Throwable t){
            return 1;
        }
    }
    return cachedAppBuildTime;
}

代码中的appContext变量是通过context.getApplicationContext()

于 2013-03-12T08:57:35.737 回答
0

我使用与 yigit 相同的策略,只是我更喜欢 MANIFEST.MF 文件。即使修改了布局,也会重新生成这个(classes.dex 不是这种情况)。

它导致以下代码:

private long mAppBuildTime = -1;

public long getAppBuildTime() {
  if (mAppBuildTime == -1) {
    try{
      ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), 0);
      ZipFile zf = new ZipFile(ai.sourceDir);
      ZipEntry ze = zf.getEntry("META-INF/MANIFEST.MF");
      mAppBuildTime = ze.getTime();
      zf.close();
    }catch(Exception e){
    }
  }
  return mAppBuildTime;
}
于 2014-06-02T02:13:39.000 回答