前言:
当前看官们对“安卓配置文件url下载”大约比较重视,你们都需要剖析一些“安卓配置文件url下载”的相关资讯。那么小编同时在网上收集了一些关于“安卓配置文件url下载””的相关文章,希望看官们能喜欢,同学们一起来学习一下吧!开发一个Android App我们一般需要继承Application来初始化一些配置,如下所示:
a. Application中有一个registerActivityLifecycleCallbacks()方法,可以在回调中把整个应用打开的Activity保存在集合中、销毁的Activity重集合中删除。个人觉得这种方式比BaseActivity的方式或者每打开一个Activity把当前的引用加入到集合中的方式优雅多了,推荐大家用这种方式。关闭应用也非常方便,遍历保存Activity的集合,执行finish()就好。
/**
b. 严苛模式StrictMode:建议大家在Debug版本打开严苛模式。 例如:严苛模式下可以检测到你应用中没有关闭的流,可以减少OOM,如下所示,可以看到在在控制台严苛模式模式下的Log输出。
image.png
ThreadPolicy线程策略检测
自定义的耗时调用 使用detectCustomSlowCalls()开启
磁盘读取操作 使用detectDiskReads()开启
磁盘写入操作 使用detectDiskWrites()开启
网络操作 使用detectNetwork()开启
VmPolicy虚拟机策略检测
Activity泄露 使用detectActivityLeaks()开启
未关闭的Closable对象泄露 使用detectLeakedClosableObjects()开启
泄露的Sqlite对象 使用detectLeakedSqlLiteObjects()开启
检测实例数量 使用setClassInstanceLimit()开启
/**严苛模式主要检测两大问题,一个是线程策略,即TreadPolicy,另一个是VM策略,即VmPolicy。*/if (AppConfig.IS_DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
c .在onCreate中,检测当前进程名称是否为应用包名,否则return (像百度地图等sdk需要在单独的进程中执行,会多次执行Application的onCreate()方法,所以为了只初始化一次应用配置,作此判断),代码如下:
/**检测当前进程名称是否为应用包名,否则return (像百度地图等sdk需要在单独的进程中执行,会多次执行Application的onCreate()方法,所以为了只初始化一次应用配置,作此判断)*/if (!CommonUtil.getCurProcessName(this).equals(getPackageName())) { return;
d . Crash全局异常捕获,用到了一个第三方库,使用方法如下:
compile 'cat.ereza:customactivityoncrash:1.5.0'
CustomActivityOnCrash.install(this);
应用发生异常时customactivityoncrash库会打开一个如下图所示的Activity页面,可以查看错误。
image.png
e .其他配置初始化
private void init() { /**注册ActivityListener*/
2 .完整MyApplication代码,如下所示:
public class MyApplication extends Application { private static MyApplication application; /**
3 . 应用的入口SplashActivity的onCreate方法中要加入如下代码,解决首次安装应用,点击应用图标打开应用,点击home健回到桌面,再次点击应用图标,进入应用时多次初始化SplashActivity的问题
/**在应用的入口activity加入以下代码,解决首次安装应用,点击应用图标打开应用,点击home健回到桌面,再次点击应用图标,进入应用时多次初始化SplashActivity的问题*/if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
4 . app下的build.gradle配置,代码如下
apply plugin: 'com.android.application'apply plugin: 'com.antfortune.freeline'android { //国内镜像地址来下载 $ ./gradlew initFreeline -Pmirror
5 . 应用根目录下得build.gradle文件配置,代码如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules.ext {
6 . 应用的混淆配置文件,代码如下:
-keepclassmembers class fqcn.of.javascript.interface.for.webview { public *;
7 . 此Demo的功能,可以在应用内切换Base_Url,退出登录时还原默认的Base_Url ,导出应用的私有数据到SD卡上,个人觉得这几个功能,是我们开发app时很需要的功能,如下所示:
image.png
8 . 混淆前后文件目录变化如下图所示,其中mapping.txt文件为混淆的映射文件,每个版本要注意保存起来(Umeng上需要导入这个文件的)。
image.png
9 . 对系统Log类的封装Logger类,可以在控制台打印出如下图所示的功能,主要实现代码如下:
StackTraceElement stackTrace = Thread.currentThread().getStackTrace()[4];
标签: #安卓配置文件url下载