![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android 跨门槛
Mr.QingBin
邮箱:280553230qq.com
展开
-
api version最佳实践
原文链接: 这是一个好的并且有意思的问题,url设计是restful api最重要的部分,因此,是一种对用户的长期承诺。 随着应用的演化,应用的api应该保持较少的扩展,就像编程语言本身一样。翻译 2017-01-25 18:47:59 · 938 阅读 · 0 评论 -
small插件化方案踩坑
集成方案基本思想:把可变的集成到lib或者app中,不可变的以stub的方式集成 集成方案:保持现有的组件化方案不变,将openali,utils以stub的方式集成到工程中和普通开发之间的区别##缺点:1:service,provider集成到宿主中 2:activity 仅支持launchmode属性,如果有process,configchanged等属性需要在宿主中注册原创 2017-01-12 19:49:58 · 1563 阅读 · 0 评论 -
difference between clear data and clear cache ? Android
setting中清除代码1: 清空缓存packageManager 中 packageManagerService -> deleteApplicationCacheFilesAsUser(final UserEnvironment userEnv = new UserEnvironment(curUser);clearDirectory原创 2017-06-14 11:29:18 · 660 阅读 · 0 评论 -
sqlcipher加密已有数据库及其时机
最近我们做的移动im打算将数据库加密,我们的数据库是对数据库的简单封装 ,调研了一些开源数据库加密工具,觉得sqlcipher用户会多一点,而且开源。所以打算就用它了 sqlcipher的使用可以参考下这两篇文章: http://www.jianshu.com/p/3baf311f8c8c https://www.zetetic.net/sqlcipher/sqlcipher-a原创 2017-08-26 05:45:49 · 6145 阅读 · 1 评论 -
android small资源加载
1:不用small 怎么获取资源 Resouces r = context.getResources(); 获取字符串 r.getString(intValue); 获取图片 r.getDrawable(intValue);2:怎么获取其它package包的资源 方法一: Context otherContext原创 2017-09-25 18:43:42 · 623 阅读 · 0 评论 -
Android mvc,mvp , mvvm三种设计模式的选择实践
google 官方mvp实践没有一种放之四海皆准的设计模式•追随业务•遵循最基础的原则• 1: 业务逻辑简单,没有可复用模块的直接mvc• 2: 有可服用模块 抽取presenter层• 3: 业务模型,ui框架变动不频繁采用mvp• 4: mvvm原创 2017-09-15 17:36:16 · 468 阅读 · 0 评论 -
看源码了解Gson excludeStrategy的使用
使用exclude strategy的场景:我们知道Gson 序列化的时候通常有些字段不需要seralize到json中去,gson给我们提供了一个annotaion,Expose 定义: @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Exp原创 2017-11-09 19:07:29 · 542 阅读 · 0 评论 -
Service的初始化流程与small插件化框架
1: bind service时序图2: start service时序图3: small 对service的支持--不支持动态加载,需在宿主中注册 通过反射为ActivityThread的mH变量添加callback唯一的功能是确保如果是启动不同的进程中的service,确保所有的插件已经被加载进来4 : 如何支持原创 2016-12-18 17:06:00 · 713 阅读 · 0 评论 -
android开发 分支管理模型
git android 分支管理原创 2016-12-12 15:52:18 · 890 阅读 · 0 评论 -
android插件化框架 small对资源的支持
1:不用small 怎么获取资源 Resouces r = context.getResources(); 获取字符串 r.getString(intValue); 获取图片 r.getDrawable(intValue);2:怎么获取其它package包的资源 方法一: Context otherContext原创 2016-12-02 12:06:39 · 1008 阅读 · 0 评论 -
Android里Service的bindService()和startService()混合使用深入分析
1.先讲讲怎么使用bindService()绑定服务 应用组件(客户端)可以调用bindService()绑定到一个service.Android系统之后调用service的onBind()方法,它返回一个用来与service交互的IBinder 绑定是异步的.bindService()会立即返回,它不会返回IBinder给客户端.要接收IBinder,客户端必须创建一个S转载 2013-05-17 10:40:02 · 853 阅读 · 0 评论 -
logcat命令詳解
Android日志系統提供了記錄和查看系統調試信息的功能。日志都是從各種軟件和一些系統的緩沖區中記錄下來的,緩沖區可以通過logcat命令來查看和使用.在使用logcat之前,請確保手機的USB調試模式已經開启,可以通過"Setting->Application->Development->USB debugging"來開启。logcat本身是android的shell的一個命令,你可转载 2013-12-02 13:34:04 · 1011 阅读 · 0 评论 -
ViewHolder的经典用法
public class ViewHolder {// I added a generic return type to reduce the casting noise in client code@SuppressWarnings("unchecked")public static T get(View view, int id) {SparseArray viewHolde原创 2014-11-07 00:02:06 · 2906 阅读 · 0 评论 -
android中的token
token顾命思意,象征符号,到底是什么的象征呢?我们在看andorid源码的时候,经常会碰到程序与系统service之间的通信,我们也知道进程间通信会用binder机制!而这个token就是一个IBinder类型代表远程service的stub对象!以下分析以6.0代码为准!1: activity中的mToken activity启动流程中mTo原创 2016-05-15 22:30:51 · 4576 阅读 · 0 评论 -
Andorid Touch 事件情景解析
1: 如果所有的子view都没有消费down事件,事件如何传递 测试代码如下public class ActivityTouchTestActivity extends AppCompatActivity { private static final String Tag = ActivityTouchTestActivity.class.getSimpleName(原创 2016-06-14 15:48:58 · 455 阅读 · 0 评论 -
深入理解android UI Thread
理解android UI Thread什么叫做UI Thread我通常的理解是 1. 执行ui绘制的地方,onMeasure onLayout onDraw, 2. android组件activity,service,broadcastreceiver的生命周期都是在ui thread中执行的。如果在ui thread中执行耗时过长的任务,会导致anr但是为什么会这样,并没有深入理解UI原创 2016-07-05 10:42:23 · 2891 阅读 · 0 评论 -
android插件化 small rules
为什么要用small:1:解决65535的问题,不再依赖multidex,拆分dex变的可控2:small提供了一套插件间的解藕和通信方案,使得独立开发各个模块变得更加容易3:解藕后,各个业务模块可以独立更新4:低入侵性,即使后来改用其他的插件化方案也不需要更改代码结构--切换方案弹性更大 1: bundle.json 用来配置需要被加载的插件{ "u...原创 2016-11-11 11:02:13 · 1525 阅读 · 1 评论 -
rxjava2.0 线程切换的原理及SubscribeOn,ObserveOn的用法
android开发过程中经常会用到线程切换,比如数据加载、文件存储、数据库操作等都是在io线程处理,而处理结果的展示刷新ui需要在ui线程进行。如果不用rxjava,我们可能会asycTask,或者retrofit自己默认的callback来在ui线程刷新ui。但是当我们的操作变复杂时,比如一个接口的数据依赖于另一个接口的返回,或者一次上传多张图片功能,就会造成接口多层嵌套进而增加维护成本注:...原创 2019-06-06 16:41:49 · 1449 阅读 · 0 评论