随笔分类 -  源码

源码
摘要:【状态模式】 No1: Wifi设置界面是一个叫做WifiSetting的Fragment实现的 No2: 在不同的状态下对于扫描Wifi这个请求的处理是完全不一样的。在初始状态下扫描请求被直接忽略,在驱动加载中状态下Wifi扫描请求被添加到延迟处理的消息列表,在驱动加载完成状态下扫描Wifi的请求 阅读全文
posted @ 2017-11-01 13:43 嘉禾世兴 阅读(561) 评论(0) 推荐(0) 编辑
摘要:No1: 定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 No2: 使用场景: 1)针对同一类型问题的多种处理方式,仅仅是具体行为有差别时 2)需要安全的封装多种同一类型的操作时 3)出现同一抽象类有多个子类,而又需要 阅读全文
posted @ 2017-11-01 11:30 嘉禾世兴 阅读(737) 评论(0) 推荐(0) 编辑
摘要:No1: 4种MediaPlayer Factory分别会生成不同的MediaPlayer基类:StagefrightPlayer、NuPlayerDriver、MidiFile和TestPlayerStub。四者均继承与MediaPlayerBase。 No2: 抽象工厂模式在android源码中 阅读全文
posted @ 2017-10-31 15:58 嘉禾世兴 阅读(397) 评论(0) 推荐(0) 编辑
摘要:No1: 对于一个应用程序来说,其真正的入口是在ActivityThread类中,ActivityThread中含有我们熟悉的main方法。ActivityThread是一个final类,不能被继承。当Zygote进程孵化出一个新的应用进程猴,会执行ActivityThread的main方法,mai 阅读全文
posted @ 2017-10-31 15:12 嘉禾世兴 阅读(232) 评论(0) 推荐(0) 编辑
摘要:No1: 原型模式使用场景: 1)类初始化需要消耗非常多的资源,这个资源包括数据、硬件资源等,通过原型复制避免这些消耗 2)通过new产生一个对象需要非常繁琐的数据准备货访问权限,这是可以使用原型模式 3)一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式复制多 阅读全文
posted @ 2017-10-31 11:16 嘉禾世兴 阅读(1142) 评论(0) 推荐(0) 编辑
摘要:No1: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 No2: 在Android源码中,最常用到的Builder模式就是AlertDialog.Builder No3: WindowManager在java层的具体实现是WindowManagerImpl,Window对 阅读全文
posted @ 2017-10-30 17:25 嘉禾世兴 阅读(345) 评论(0) 推荐(0) 编辑
摘要:No1: 懒汉单例模式优缺点分析 优点:单例只有在使用时才会被实例化,在一定程度上节约了资源 缺点:第一次加载时需要及时进行实例化,反应稍慢,最大的问题是每次调用getInstance都进行同步,造成不必要的同步开销。 所以这种模式一般不建议使用 No2: Double Check Lock(DCL 阅读全文
posted @ 2017-10-30 15:26 嘉禾世兴 阅读(267) 评论(0) 推荐(0) 编辑
摘要:1.单一职责原则 Single Respoonsibility Principle(SRP) --封装 2.开闭原则 Open Close Principle(OCP)--对扩展开放,对修改封闭 3.里式替换原则 Liskov Substitution Principle(LSP)--所有引用基类的 阅读全文
posted @ 2017-10-30 11:02 嘉禾世兴 阅读(267) 评论(0) 推荐(0) 编辑
摘要:接上篇《android开发艺术探索》读书笔记(一) No1: 在android中使用多进程只有一种方法,那就是给四大组件在AndroidMenifest中指定android:process属性。 No2: 默认进程的进程名是包名。 No3: ":"要加上当前包名,进程属于当前应用的私有进程,其他应用 阅读全文
posted @ 2017-07-28 14:55 嘉禾世兴 阅读(597) 评论(0) 推荐(0) 编辑
摘要:接上篇《深入理解Android2》读书笔记(七) AMS中的进程管理 AMS对进程的管理仅涉及两个方面 1.调节进程的调度优先级和调度策略 2.调节进程的oom值 调度优先级和调度策略 1.相对于在OS(操作系统)上运行的应用进程个数来说,CPU的资源非常有限 2.调度优先级是OS分配CPU资源给应 阅读全文
posted @ 2017-07-14 17:54 嘉禾世兴 阅读(748) 评论(0) 推荐(0) 编辑
摘要:接上篇《深入理解Android2》读书笔记(二) PackageManagerService PackageManagerService负责系统中Package的管理,应用程序的安装、卸载、信息查询等。 1.IPackageManager接口类中定义了服务端和客户端通信的业务函数,还定义了内部类St 阅读全文
posted @ 2017-07-14 17:54 嘉禾世兴 阅读(597) 评论(0) 推荐(0) 编辑
摘要:接上篇《深入理解Android2》读书笔记(三) ActivityManagerService(AMS) 1.AMS由ActivityManagerNative(AMN)类派生,并实现Watchdog.Monitor和BatteryStatsImpl.BatteryCallback接口。而AMN由B 阅读全文
posted @ 2017-07-14 17:54 嘉禾世兴 阅读(1139) 评论(0) 推荐(0) 编辑
摘要:接上篇《深入理解Android2》读书笔记(四) startActivity Am am最终将调用AMS的startActivityAndWait函数来处理这次启动请求。 startActivityLocked函数的主要工作包括 1.处理sourceRecord及resultRecord。其中,so 阅读全文
posted @ 2017-07-14 17:54 嘉禾世兴 阅读(2378) 评论(0) 推荐(0) 编辑
摘要:接上篇《深入理解Android2》读书笔记(六) 广播接受者 注册 ContextImpl 最终都执行 AMS 1.在AMS中,BroadcastReceiver的过滤条件由BroadcastFilter表示,该类从IntentFilter派生。由于BroadcastReceiver可设置多个过滤条 阅读全文
posted @ 2017-07-14 17:54 嘉禾世兴 阅读(783) 评论(0) 推荐(0) 编辑
摘要:接之前那篇《深入理解Android2》读书笔记(一) 下面几篇来分别详细分析 Binder类作为服务端的Bn的代表,BinderProxy类作为客户端的Bp的代表,BinderInternal类仅供Binder架构使用,GcWatcher专门用于处理和Binder架构相关的垃圾回收,Parcel类用 阅读全文
posted @ 2017-06-01 14:34 嘉禾世兴 阅读(453) 评论(0) 推荐(0) 编辑
摘要:LruCache 1.变量 2.构造函数 3.保存到缓存 safeSizeOf() sizeOf() trimToSize() entryRemoved()是空函数 4.从缓存中取 其中,map.put/get调用的都是LinkedHashMap中的方法,下面我们来看 LinkedHashMap 1 阅读全文
posted @ 2017-05-25 16:05 嘉禾世兴 阅读(482) 评论(0) 推荐(0) 编辑
摘要:1.先来看sdk中的介绍: A Handler allows you to send and process {@link Message} and Runnable objects associated with a thread's {@link MessageQueue}. Each Hand 阅读全文
posted @ 2017-05-24 14:14 嘉禾世兴 阅读(598) 评论(0) 推荐(0) 编辑
摘要:本来想把公司的UI图放上来,考虑到版权等未知因素,就拿网上的图来说了: 类似的这种布局,有的一行只有一张图片,有的一行有两个元素,有个一行有三个元素。。就是混合的布局方式 参考文献: https://github.com/CymChad/BaseRecyclerViewAdapterHelper/w 阅读全文
posted @ 2017-04-21 18:10 嘉禾世兴 阅读(5483) 评论(3) 推荐(0) 编辑
摘要:原文地址:http://blog.coderclock.com/2016/08/08/android/RecyclerView%20%E5%92%8C%20ListView%20%E4%BD%BF%E7%94%A8%E5%AF%B9%E6%AF%94%E5%88%86%E6%9E%90/ 今天这篇文 阅读全文
posted @ 2017-03-16 18:02 嘉禾世兴 阅读(483) 评论(0) 推荐(0) 编辑
摘要:效果图: Github地址:https://github.com/frakbot/JumpingBeansDemo地址:http://play.google.com/store/apps/details?id=net.frakbot.jumpingbeans.demo 步骤: 1.gradle中 2 阅读全文
posted @ 2017-02-24 15:22 嘉禾世兴 阅读(207) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示