2013-03-12 81 views
0

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

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

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

有没有更好的方法?就像通过知道时间或者从proc中删除信息并将它在编译时置于xml文件中一样进行日食?

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

问候 CT

回答

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()

+0

非常感谢!我修改了一下,完全像我希望的那样工作。 – user2159904 2013-03-12 10:14:26

0

I获得使用相同的策略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; 
}