android apk编译时间获取
android apk编译时间获取本方法只适用于使用android 源码编译环境。有时候我们需要在android应用上获取apk的编译时间,但java编译并不像C、C++那样有相应的宏可以在代码中读取到编译时间。我们可以利用android源码编译-linux环境来获取编译时间,然后把获取的时间写到android apk的raw文件中,这样apk启动后就可以通过读取raw文件中的时间来获取编译时间。
·
android apk编译时间获取
本方法只适用于使用android 源码编译环境。
有时候我们需要在android应用上获取apk的编译时间,但java编译并不像C、C++那样有相应的宏可以在代码中读取到编译时间。我们可以利用android源码编译-linux环境来获取编译时间,然后把获取的时间写到android apk的raw文件中,这样apk启动后就可以通过读取raw文件中的时间来获取编译时间。
Android源码编译apk需要写Android.mk文件,Android.mk文件中可以执行shell命令,利用shell命令获取编译时的时间并且写入到apk资源文件夹res/raw/下的文件即可。
Android.mk:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
#这里就是把date命令格式化输出到资源文件res/raw/date下的###
$(shell date "+%Y-%m-%d %H:%M:%S" > $(LOCAL_PATH)/res/raw/date)
LOCAL_MODULE_TAGS := optional
##end#####
LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src)
LOCAL_PACKAGE_NAME := MiptFactoryTest
LOCAL_CERTIFICATE := platform
LOCAL_OVERRIDES_PACKAGES := Home
include $(BUILD_PACKAGE)
include $(CLEAR_VARS)
include $(BUILD_MULTI_PREBUILT)
java中通过下面函数读取raw文件获取编译时间:
public String getBuildTime(){
String content = null;
Resources resources=mContext.getResources();
InputStream is=null;
try{
is=resources.openRawResource(R.raw.date);
byte buffer[]=new byte[is.available()];
is.read(buffer);
content=new String(buffer);
Log.i(TAG, "read:"+content);
}
catch(IOException e)
{
Log.e(TAG, "write file",e);
}
finally
{
if(is!=null)
{
try{
is.close();
}catch(IOException e)
{
Log.e(TAG, "close file",e);
}
}
}
return content;
}
更多推荐
已为社区贡献1条内容
所有评论(0)