"lianren"项目解析(一)
"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;}
//初始化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 老师的 指点
未完待续.....
更多相关文章
- 高效显示Bitmap+listview冲突解决+图片内存缓存+硬盘缓存
- Android中hybrid开发的基础知识
- [置顶] android 优化那些事之图片缓存设计/如何高效的展示图片(
- Android--Adapter深入理解及ListView优化
- Android(安卓)DiskLruCache完全解析,硬盘缓存的最佳方案
- Android(安卓)bitmap图片处理
- 一套完善的Android异步任务类
- Android(安卓)UI布局
- BaseAdapter与ListView解析