"lianren" 项目是一个非常优秀的 Android 商业级 项目 项目中基本涵盖了各种 Android APP 开发的技术 让笔者从中学到特别多的东西 特别感谢 开发者:huxinwu 项目开发者 和 所有人 huxinwu&github_androidOne和 其 QQ交流群 :195104825 欢迎大家关注加入

1 工欲善其事 必先利其器 (jar,依赖分析)

对于开发一款优秀的 app 我们怎么使它在最短的时间内 做到最好的质量 是很重要的 , 秉承着程序员不重复发明轮子的理念 我们经常需要借助一些 优秀的开源框架 和 第三方 来加速我们的开发周期 同时 还能得到质量的保证 (例如你需要在app中加入即使通讯的功能 自己搭建xmpp吗? 光这个时间 就得花上几个月 而且 还不一定能够做出足够优秀的 这里使用 融云 就完美的解决了问题)



1:三个 alipay 开头的jar包 顾名思义 是 支付宝相关的 jar

2:support - v4 google 提供的 一般默认创建就有 值得注意的是 v4 也有版本之分 建议大家使用高版本的 bug少

3: bugly 腾讯的 对Crash的管理 和 统计 的开放平台

3:daocore greendao 数据库映射关系的第三方库

4:google zxing : 二维码相关jar

5:nineoldandroids android 开源动画库

6:RongIM_kit融云即使通讯库

7:ShareSDK 开头的 是第三方登陆 以及 分享

8:umeng 友盟统计相关

9: ImageLoader 图片的加载 缓存等

分析完这些 jar 的作用 然后稍微在网上 查阅下 这些 jar 的用法和相关初始化 我们在 APP 看到相关陌生的代码 也大概能知道他们是起什么作用.


2:App 的 application 类的分析

app的启动自然是 application 类 最先加载启动 我们来看看 application 中做了什么:

private final String tag = BaseApplication.class.getSimpleName();private static DisplayImageOptions options;@Overridepublic void onCreate() {init();}/** * 初始化 */private void init(){//友盟session时间间隔MobclickAgent.setSessionContinueMillis(30*60*1000);//初始化融云SDK        RongIM.init(this);        RongCloudEvent.init(this);        RongCloudEvent.getInstance().RongConnect();        //初始化debug模式String flag = CommonUtils.getProperty(getApplicationContext(), "debug");if (!TextUtils.isEmpty(flag)) {Boolean isDebug = Boolean.parseBoolean(flag);NLog.setDebug(isDebug);NLog.e(tag, "isDebug: " + isDebug);}//设置默认缓存路径CacheManager.setSysCachePath(getCacheDir().getPath());//腾讯bugly相关UserStrategy strategy = new UserStrategy(getApplicationContext());strategy.setAppVersion(CommonUtils.getVersionName(getApplicationContext()));strategy.setAppReportDelay(5000);    CrashReport.initCrashReport(getApplicationContext() , "900001870" , true, strategy);    options = new DisplayImageOptions.Builder().showImageForEmptyUri(R.drawable.ic_default_img).showImageOnFail(R.drawable.ic_default_img).showImageOnLoading(R.drawable.ic_default_img).displayer(new FadeInBitmapDisplayer(300))         .cacheInMemory(true)        .cacheOnDisk(true).build();//初始化图片下载组件ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()).threadPriority(Thread.NORM_PRIORITY - 2)  .denyCacheImageMultipleSizesInMemory()        .diskCacheSize(50 * 1024 * 1024)        .diskCacheFileCount(200)        .diskCacheFileNameGenerator(new Md5FileNameGenerator()) .defaultDisplayImageOptions(options).build();//Initialize ImageLoader with configuration.ImageLoader.getInstance().init(config);}public static DisplayImageOptions getOptions() {return options;}public static void setOptions(DisplayImageOptions options) {BaseApplication.options = options;}


简单看一下 应该是做了 友盟的初始化 融云的初始化 设置默认的缓存路径 腾讯bugly的初始化 配置了 ImageLoader 的一些参数


//初始化debug模式String flag = CommonUtils.getProperty(getApplicationContext(), "debug");if (!TextUtils.isEmpty(flag)) {Boolean isDebug = Boolean.parseBoolean(flag);NLog.setDebug(isDebug);NLog.e(tag, "isDebug: " + isDebug);

这段笔者太没有看太明白 还需要等待 huxinwu 老师的 指点

未完待续.....


更多相关文章

  1. 高效显示Bitmap+listview冲突解决+图片内存缓存+硬盘缓存
  2. Android中hybrid开发的基础知识
  3. [置顶] android 优化那些事之图片缓存设计/如何高效的展示图片(
  4. Android--Adapter深入理解及ListView优化
  5. Android(安卓)DiskLruCache完全解析,硬盘缓存的最佳方案
  6. Android(安卓)bitmap图片处理
  7. 一套完善的Android异步任务类
  8. Android(安卓)UI布局
  9. BaseAdapter与ListView解析

随机推荐

  1. widget
  2. android .mk 引用第三方jar包(参考 Calcul
  3. iOS Android(安卓)WebView 通过 Cookie
  4. android中联系人以及 ContactsContract类
  5. android之layout_width/layout_height和w
  6. Android(安卓)获取泛型实际类型
  7. 你用什么作为app应用的后台服务?
  8. android 调用百度sdk点位当前城市
  9. android 之service实现电话监听并录音
  10. 初学android遇到的几个问题