思路:

把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启动速度之实例挑战相关推荐

  1. 深入探索Android 启动优化(七) - JetPack App Startup 使用及源码浅析

    本文首发我的微信公众号:徐公,想成为一名优秀的 Android 开发者,需要一份完备的 知识体系,在这里,让我们一起成长,变得更好~. 前言 前一阵子,写了几篇 Android 启动优化的文章,主要是 ...

  2. Android 系统性能优化(29)---给 App 提速:Android 性能优化总结

    每当处理或者排查性能问题的时候,都遵循这些原则: 持续测量: 用你的眼睛做优化从来就不是一个好主意.同一个动画看了几遍之后,你会开始想像它运行地越来越快.数字从来都不说谎.使用我们即将讨论的工具,在你 ...

  3. Android App优化之ANR详解

    引言 背景:Android App优化, 要怎么做? Android App优化之性能分析工具 Android App优化之提升你的App启动速度之理论基础 Android App优化之提升你的App ...

  4. Android App优化之Layout怎么摆

    Android App优化之Layout怎么摆 anly_jun关注 0.1172016.09.03 00:34:00字数 1,668阅读 15,750 系列文: 背景:Android App优化, ...

  5. Android App优化

    背景:Android App优化, 要怎么做?Android App优化之性能分析工具Android App优化之提升你的App启动速度之理论基础Android App优化之提升你的App启动速度之实 ...

  6. Android 性能优化

    为什么80%的码农都做不了架构师?>>>    原文作者:鸿洋 原文地址:点我跳转原文 一般情况下,我们谈性能优化基本上会从以下几个方面: App启动速度优化 UI流畅度优化 内存优 ...

  7. Android系统性能优化(54)---Android性能分析专题

    Android性能分析专题 1.  背景:Android App优化, 要怎么做? 2.  Android App优化之性能分析工具 3.  Android App优化之提升你的App启动速度之理论基 ...

  8. Android启动优化实战(有效降低APP启动时间)

    1.概述 手机点击一个APP,用户希望应用能够及时响应并快速加载.启动时间过长的应用不能满足这个期望,并且可能会令用户失望.这种糟糕的体验可能会导致用户在 Play 商店针对您的应用给出很低的评分,甚 ...

  9. Android系统性能优化(73)---总结

    Android性能优化来龙去脉总结 一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样才能更好地提高用户体验. 以下是本人在工作中对经历过的性能优化的一些总结,依据 ...

最新文章

  1. Java 序列化的高级认识
  2. 【深度学习】一个应用—肝脏CT图像自动分割(术前评估)
  3. Spring Boot与MyBatis整合
  4. Matlab中plot函数及legend函数详解
  5. 已知一个特殊字符的 unicode 编码值,如何在 ABAP 里打印出这个特殊字符?
  6. Spring Boot : 自定义 Starter
  7. C/C++二维数组的用法
  8. 《高质量程序设计指南:C++/C语言》图书信息
  9. 2021年全国大学生电子设计大赛题目
  10. JAVA 2048源码_java实现2048游戏源代码
  11. PS笔刷素材套装:81种自定义树叶水彩/水粉画
  12. 行人重识别论文阅读7-基于图卷积的行人骨架识别
  13. hal库GPIO函数
  14. 写的不错的《活着》的书评
  15. GYM 101350 M. Make Cents? ( STL
  16. vue获取qq音乐歌曲音频资源
  17. 菩提本无树 明镜亦非台
  18. 《先进PID控制 MATLAB仿真 第2版 刘金琨等编》【shallow】
  19. 消防法及相关法律法规(一)
  20. 【渝粤教育】广东开放大学 土木工程施工 形成性考核 (52)

热门文章

  1. c语言学习-从键盘输入三个数,按照从小到大(或从大到小)的顺序输出
  2. OpenShift 4 之AMQ Streams(3) - 用Kafka MirrorMaker在Kafka集群间复制数据
  3. 提高软件质量的10点
  4. 机器人施教器的信息丢失_一种精准定位学习难度的施教方法及教育机器人与流程...
  5. azw3转换为pdf_干货:如何Java 将 Word 文档转换为 PDF
  6. 电脑刷机重装系统_手机刷机,原来也没有那么复杂
  7. ajax表单图片,js中使用ajax上传一个带有图片的表单数据
  8. esp32树莓派_用树莓派 DIY 宠物自动喂食机,再也不用担心家里的萌宠了
  9. php mysql 编码转换_PHP编码转换函数应用
  10. java删除mysql 数据库语句怎么写_怎么用JAVA语句在Mysql中查询,添加,删除语句,说的详细点,谢谢!...