Eclipse时间戳编译时Android

时间:2013-03-12 08:21:49

标签: android eclipse date time compile-time

我在Linux上使用Eclipse for Android SDK,并且正在搜索将编译的日期和开始时间添加到其中一个xml文件的方法。我希望在设备上看到我正在使用的构建版本,而不是在每个编译步骤之前手动更新此信息。

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

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

有更好的方法吗?就像知道时间或从 proc 中剥离信息并将其放在编译时在xml文件中进行eclipse一样?

这是我第一次使用eclipse,所以请原谅我问过一些明显或不可能的事情。

此致 CT

2 个答案:

答案 0 :(得分: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()

获取的

答案 1 :(得分: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;
}