0%

MVC,MVP和MVVM是软件比较常用的三种软件架构,这三种架构的目的都是分离,避免将过多的逻辑全部堆积在一个类中。
在Android中,Activity中既有UI的相关处理逻辑,又有数据获取逻辑,从而导致Activity逻辑复杂不单一难以维护。
为了一个应用可以更好的维护和扩展,我们需要很好的区分相关层级,要不然以后将数据获取方式从数据库变为网络获取时,我们需要去修改整个Activity。架构使得View和数据相互独立,我们把应用分成三个不同层级,这样我们就能够单独测试相关层级,使用架构能够把大多数逻辑从Activity中移除,方便进行单元测试。

阅读全文 »

Android中的bitmap是比较占用内存的,bitmap的大小直接影响到了应用占用内存的大小。Bitmap内存优化属于性能优化中较为重要的点。如何更好的使用 bitmap,减少其对 App内存的使用,是我们开发中不可回避的问题。
为了解决这个问题,就出现了Bitmap 的高效加载策略。其实核心思想很简单。假设通过InmageView 来显示图片,很多时候 ImageVIew并没有原始图片的尺寸那么大,这个时候把整个图片加载进来再设置ImageView,显示是没有必要的,因为ImageView根本没办法显示原始图片。这时候就可以按一定的采样率来将图片缩小后在加载进来,这样图片既能在ImageView显示出来,又能降低内存占用从而在一定程度上避免OOM,提高了Bitmap加载时的性能。

阅读全文 »

视频是包含了画面和声音的一个整体,是采用了一些复杂的算法将画面和声音数字信号进行编码存储,并通过解码算法再进行画面和声音的还原播放。

阅读全文 »

之前的文章有讲到JVM,JVM是Java Virtual Machine,本质上就是一个软件,JAVA在编译后会生成类似于汇编语言的JVM字节码(.class文件),与C语言编译后产生的汇编语言不同的是,C编译成的汇编语言会直接在硬件上跑,但JAVA编译后生成的字节码是在JVM上跑,需要由JVM把字节码翻译成机器指令,才能使JAVA程序跑起来。JVM的作用是把平台无关的.class里面的字节码翻译成平台相关的机器码,来实现跨平台。

阅读全文 »

今天给大家分享一下Glide的一些使用技巧。Glide应该是Android APP中使用最为广泛的图片加载框架了,如丝般的顺滑滚动以及方便的链式调用为广大开发者所喜爱。但是开发中,我们总能遇上一些不太普遍的需求,比如列表中显示视频缩略图、显示音频的封面图、apk的图标等等,或者更奇葩的需求。这些场景使用框架默认的调用无法满足。

阅读全文 »

排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们常说的排序就是内部排序。

阅读全文 »

在Android中如果要显示一个页面,那么只需要在Activity的onCreate()方法中,把我们写好的页面布局layout传入到setContentView()方法中即可,这样Activity就会完成接下来的工作,通过一系列的操作把我们想要的布局页面显示出来,不需要我们再做任何的处理,所以最初的时候一直以为是Activity将layout布局中的控件绘制出来的,但事实究竟是怎样的呢,我们来一探究竟。

阅读全文 »