- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 android 屏幕适配方式
1、onCreate中setContentView的时候,根据获取的手机设备屏幕参数来选择不同的配置文件。 2、通过android会根据不同的屏幕尺寸来选择不同配置文件夹的配置文件。android 3.2版本之前的。 layout-large,layout。7寸以上的屏幕android系统会选择layout-large定义的配置文件,7寸以下的系统自动加载 layout中的配置文件。...
2018-04-24 17:52:28 332
原创 深入剖析ThreadLocal
ThreadLocal即是本地线程,ThreadLocal为每个线程创建一个变量副本,只有本线程才可见,因此就解决了多线程并发问题,ThreadLocal维护一个ThreadLocalMap表,本表即是存储副本的map表。 详见以下链接。 http://www.cnblogs.com/dolphin0520/p/3920407.html...
2018-04-24 17:52:19 163
原创 java IO 和 NIO 的差异及其选择
当学习了Java NIO和IO的API后,一个问题马上涌入脑海:我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。Java NIO和IO的主要区别 下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。IO ...
2018-04-24 17:52:08 802
原创 JAVA8的新特性
1、内部访问外部变量。1.8之前需要在外部变量加上final关键字,1.8的半边无需加该关键字,但是外部变量的值还是不能修改。 2、@FuncitonInterface,1.8之前的版本,JAVA是不支持多继承的,但到了1.8版本之后增加本函数接口,即是函数中有且只有一个抽象方法,可以用default关键字定义多个已实现的默认方法。这样,因为JAVA是可以继承多个接口的,因此通过函数接口也间接的...
2018-04-24 17:51:58 138
原创 MVC 、MVP详解 及其 MVC 在安卓系统中的具体应用
MVC框架MVC是将业务逻辑、界面进行解耦,通过中间的Control对界面数据和操作进行处理,然后将处理结果反馈给业务逻辑层也就是Modle。Modle:业务逻辑层,本层是应用数据的核心,例如数据库和表View:视图层,其是接收用户操作 和对model数据的展示。Control:控制器,接收用户输入和操作,例如增删改成数据库,然后将操作数据录入model。MVC虽然通过control...
2018-04-24 17:51:46 168
原创 ListView 和 RecyclerView 比较
1、ListView 与 RecyclerView 均是通过复用ItemView的原理来展示大量数据的控件。 2、ListView 使用了2级缓存,RecyclerView使用了4级缓存,多了对ItemView的缓存mCacheViews和增加一个共用缓存池RecyclerViewPool。 3、 mActiveViews(ListView)和mAttachedScrap(RecyclerVi...
2018-04-24 17:51:34 330
原创 android和设计模式随谈之装饰模式
1、装饰模式。装饰模式的现实生活理解,例如现在有一扇窗户,窗户只有普通边框和玻璃,有一天我需要把这散窗口换成有花纹边框的窗户。这个时候怎么办呢?有2种方式,第一种去买一些装饰花边,对窗户的边框进行装饰一下;第二种换掉目前的窗户,买一扇带花纹边框的窗户,替换过程有两种代价,一是替换后花的金钱(对应计算机资源)肯定会更多,并且换窗户还浪费人;第二种如果市场没有这样窗户,那么工厂需要增加一条带花纹...
2018-04-24 17:51:24 129
原创 android和设计模式随谈之原型模式(Prototype)
原型模式一般采用clone来实现,通过拷贝来获取和这个对象一模一样的数据。clone分为浅拷贝和深拷贝,浅拷贝只会备份一些值变量,例如int,float,double等,对于引用变量,则只是拷贝了一份引用,如果改变本应用的值,其他浅拷贝的引用变量都会变化;深拷贝的话,值变量和引用变量都会增加一个副本,克隆对象相互不影响。克隆的出现,是因为对象创建的复杂度和资源消耗可能会大大高于克隆;是采用克...
2018-04-24 17:51:14 267
原创 android和设计模式随谈之策略模式
软件开发过程中,为了实现某一个功能可以有多重算法或者策略,把各种算法封装起来,可以相互替代,这种模式就是策略模式讲各种算法抽象成统一接口,根据业务需求,传入不同的算法,则就实现了动态替换。android中的策略模式应用实例,值动画中的插值器模式,有三种 匀速插值器、加速减速插值器、减速插值器。这三种插值器,根据不同的情况可以相互替换。android 中的策略模式另外一个应用就是ListV...
2018-04-24 17:51:03 133
原创 Android内核剖析之Android总架构
Android总体架构从上往下分为4层:应用层,各种APP,包括界面、JAVA语言编写的控制、Home界面、资源文件等。应用框架层,android的管理工具,例如Activity Manager、Window Manager、ContenProviders、View System、ResouceManager等Android运行核心库层,包括虚拟机Daivik,每个应用程序都拥有一个独立...
2018-04-24 17:50:49 624
原创 Android内核剖析之Framework框架
Framework框架包含3个主要部分,服务器端、客户端、Linux驱动服务器端主要包含以下2个主要的类:AMS(ActivityManagerService),AMS的主要作用是管理各个Activity。WMS(WindowManagerService),WMS主要管理各个窗口的叠放顺序、隐藏和显示。客户端主要包含以下几方面:ActivityThread:Activity...
2018-04-24 17:50:31 462
原创 Android性能分析和优化之 Analyze Apk
Analyze Apk 工具,通过 android studio -> build -> Analyze Apk 可以启动。Analyze Apk 工具是一个逆向分析工具,主要对现有app包进行分析,包括结构、各个模块所占用的空间大小,各个模块所占用空间的百分比等Analyze Apk可以比较 2个 安装包的差异,例如可以用来比较分析上个版本的安装包 和 当前安装包,从而可以分...
2018-04-24 17:50:03 1705
原创 Android性能分析和优化之traces.txt(ANR分析)
ANR 类型分类。 1、 KeyDispatchTimeout(5 seconds) –主要类型按键或触摸事件在特定时间内无响应。按键或者触摸引起的ANR的时间定于是在AMS中 static final int KEY_DISPATCHING_TIMEOUT = 5*1000 设置的。 2、 BroadcastTimeout(10 seconds) –BroadcastReceiver在特定...
2018-04-24 17:49:52 5942
原创 Android内存管理
本部分将分两部分来讲解。1、android 内存回收机制,即采用了 Low Memory Killer。2、正对Low Memory Killer回收机制,那么应用程序需要在 onLowMemory 和 onTrimMemory 方法中怎么处理,来降低系统对APP进程的回收率。第二步;MIUI、华为等非原生系统,第三方软件等,将APP杀死之后,APP的重启方式。 详见:https:/...
2018-04-24 17:49:14 465
原创 Handler运行机制详解
1、android线程间的通讯,都是经过Handler在线程之间的切换。包括耗时任务的结果传送到UI线程等。2、Handler使用包括2种形式,一种是主线程和子线程的交互,另外一种是子线程和子线程之间的交互。3、Handler的创建,主线传入Looper.getMainLooper;如果是在子线程中创建,则需要在Looper.prepare(); 和 Loop.loop之间创建,否则会抛出...
2018-04-21 21:48:34 567
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人