android apk编译时间获取

来源:互联网 发布:乃木坂网络直播电视剧 编辑:程序博客网 时间:2024/05/16 11:54

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 := MiptFactoryTestLOCAL_CERTIFICATE := platformLOCAL_OVERRIDES_PACKAGES := Homeinclude $(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;    }
0 0
原创粉丝点击