Android App优化之提升你的App启动速度之实例挑战
思路:
把BaseApplication onCreate()方法中不需要马上初始化放在service中,可以优化app的启动速度
关键代码:
import android.app.IntentService;
import android.content.Context;
import android.content.Intent;import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.tencent.bugly.Bugly;import cn.jpush.android.api.JPushInterface;/*** Created by stevenzhang on 2016/12/31 0031.*/public class InitializeService extends IntentService {private static final String ACTION_INT_WHEN_APP_CREATE = "com.ailisi.myn.service.action.init";public InitializeService(String name) {super(name);}//发送intentpublic static void start(Context context){Intent intent = new Intent(context,InitializeService.class);intent .setAction(ACTION_INT_WHEN_APP_CREATE);context.startService(intent);}@Overrideprotected void onHandleIntent(Intent intent) {if(intent!=null){final String action = intent.getAction();if(ACTION_INT_WHEN_APP_CREATE.equals(action)){performInit();}}}private void performInit() {JPushInterface.setDebugMode(false); // 设置开启日志,发布时请关闭日志JPushInterface.init(this); // 初始化 JPush//bugly初始化Bugly.init(getApplicationContext(), "", false);//初始化图片工具类ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(getApplicationContext()));}
}
说明:
需要初始化的第三方, 一般分为两种, 一种是第三方平台的SDK(推送, 分享, 反馈, 统计等) 这个可以通过看其SDK文档, 结合业务需求考虑. 例如分享, 反馈一般不是必须要应用一开启就能用的, 这类业务一般层级比较深, 有足够的理由让它们在后台异步初始化. 另外一种第三方是第三方的库, 一般来说, 建议阅读其源码, 了解其实现原理, 再决定是否放在后台初始化.
用法:
在BaseApplication的onCreat()方法中加入
InitializeService.start(this);
还有一种方法是在 给启动页面Activity加入一个背景
<style name="LogoTheme" parent="android:Theme.NoTitleBar.Fullscreen"><!--<item name="android:windowBackground">@mipmap/welcome_page</item>//背景是张logo图片,这种方式比较好--><item name="android:windowBackground">@color/color_fff</item>//背景是张logo图片,这种方式比较好<item name="android:windowNoTitle">true</item><item name="android:windowActionBar">false</item></style>
<activityandroid:name=".ui.activity.WelcomeAct"android:label="@string/app_name"android:theme="@style/LogoTheme"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
参考链接 http://www.jianshu.com/p/4f10c9a10ac9
Android App优化之提升你的App启动速度之实例挑战相关推荐
- 深入探索Android 启动优化(七) - JetPack App Startup 使用及源码浅析
本文首发我的微信公众号:徐公,想成为一名优秀的 Android 开发者,需要一份完备的 知识体系,在这里,让我们一起成长,变得更好~. 前言 前一阵子,写了几篇 Android 启动优化的文章,主要是 ...
- Android 系统性能优化(29)---给 App 提速:Android 性能优化总结
每当处理或者排查性能问题的时候,都遵循这些原则: 持续测量: 用你的眼睛做优化从来就不是一个好主意.同一个动画看了几遍之后,你会开始想像它运行地越来越快.数字从来都不说谎.使用我们即将讨论的工具,在你 ...
- Android App优化之ANR详解
引言 背景:Android App优化, 要怎么做? Android App优化之性能分析工具 Android App优化之提升你的App启动速度之理论基础 Android App优化之提升你的App ...
- Android App优化之Layout怎么摆
Android App优化之Layout怎么摆 anly_jun关注 0.1172016.09.03 00:34:00字数 1,668阅读 15,750 系列文: 背景:Android App优化, ...
- Android App优化
背景:Android App优化, 要怎么做?Android App优化之性能分析工具Android App优化之提升你的App启动速度之理论基础Android App优化之提升你的App启动速度之实 ...
- Android 性能优化
为什么80%的码农都做不了架构师?>>> 原文作者:鸿洋 原文地址:点我跳转原文 一般情况下,我们谈性能优化基本上会从以下几个方面: App启动速度优化 UI流畅度优化 内存优 ...
- Android系统性能优化(54)---Android性能分析专题
Android性能分析专题 1. 背景:Android App优化, 要怎么做? 2. Android App优化之性能分析工具 3. Android App优化之提升你的App启动速度之理论基 ...
- Android启动优化实战(有效降低APP启动时间)
1.概述 手机点击一个APP,用户希望应用能够及时响应并快速加载.启动时间过长的应用不能满足这个期望,并且可能会令用户失望.这种糟糕的体验可能会导致用户在 Play 商店针对您的应用给出很低的评分,甚 ...
- Android系统性能优化(73)---总结
Android性能优化来龙去脉总结 一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样才能更好地提高用户体验. 以下是本人在工作中对经历过的性能优化的一些总结,依据 ...
最新文章
- Java 序列化的高级认识
- 【深度学习】一个应用—肝脏CT图像自动分割(术前评估)
- Spring Boot与MyBatis整合
- Matlab中plot函数及legend函数详解
- 已知一个特殊字符的 unicode 编码值,如何在 ABAP 里打印出这个特殊字符?
- Spring Boot : 自定义 Starter
- C/C++二维数组的用法
- 《高质量程序设计指南:C++/C语言》图书信息
- 2021年全国大学生电子设计大赛题目
- JAVA 2048源码_java实现2048游戏源代码
- PS笔刷素材套装:81种自定义树叶水彩/水粉画
- 行人重识别论文阅读7-基于图卷积的行人骨架识别
- hal库GPIO函数
- 写的不错的《活着》的书评
- GYM 101350 M. Make Cents? ( STL
- vue获取qq音乐歌曲音频资源
- 菩提本无树 明镜亦非台
- 《先进PID控制 MATLAB仿真 第2版 刘金琨等编》【shallow】
- 消防法及相关法律法规(一)
- 【渝粤教育】广东开放大学 土木工程施工 形成性考核 (52)
热门文章
- c语言学习-从键盘输入三个数,按照从小到大(或从大到小)的顺序输出
- OpenShift 4 之AMQ Streams(3) - 用Kafka MirrorMaker在Kafka集群间复制数据
- 提高软件质量的10点
- 机器人施教器的信息丢失_一种精准定位学习难度的施教方法及教育机器人与流程...
- azw3转换为pdf_干货:如何Java 将 Word 文档转换为 PDF
- 电脑刷机重装系统_手机刷机,原来也没有那么复杂
- ajax表单图片,js中使用ajax上传一个带有图片的表单数据
- esp32树莓派_用树莓派 DIY 宠物自动喂食机,再也不用担心家里的萌宠了
- php mysql 编码转换_PHP编码转换函数应用
- java删除mysql 数据库语句怎么写_怎么用JAVA语句在Mysql中查询,添加,删除语句,说的详细点,谢谢!...