摘要:
Picasso 收到加载及显示图片的任务,创建 Request 并将它交给 Dispatcher,Dispatcher 分发任务到具体 RequestHandler,任务通过 MemoryCache 及 Handler(数据获取接口) 获取图片,图片获取成功后通过 PicassoDrawable 显 阅读全文
2016年11月14日
摘要:
和Picasso有90%相似度,但却比Picasso省内存,有助于APP的优化! Glide 的使用介绍 Android Glide Google 推荐加载图片框架(加载图片详解篇) 1). 导入库 2). 基础加载 Glide的with方法不光接受Context,还接受Activity 和 Fra 阅读全文
摘要:
Fresco是Facebook公司的黑科技:http://fresco-cn.org/ 真三级缓存,变换后的BItmap(内存),变换前的原始图片(内存),硬盘缓存。在内存管理上做到了极致。对于重度图片使用的APP应该是非常好的。它一般是直接使用SimpleDraweeView来替换ImageVie 阅读全文
摘要:
ImageLoader 的工作原理(已经不维护了) 在显示图片的时候,它会先在内存中查找;如果没有,就去本地查找;如果还没有,就开一个新的线程去下载这张图片,下载成功会把图片同时缓存到内存和本地。 基于这个原理,我们可以在每次退出一个页面的时候,把ImageLoader 内存中的缓存全都清除,这样就 阅读全文
摘要:
图片缓存技术:在很多情况下,(比如使用ListView, GridView 或者 ViewPager 这样的组件), 屏幕上显示的图片可以通过滑动屏幕等事件不断地增加,最终导致OOM。这个时候,使用内存缓存技术可以很好的解决这个问题,它可以让组件快速地重新加载和处理图片。下面我们就来看一看如何使用内 阅读全文
摘要:
AsyncHttpClient,它把HTTP所有的通信细节全部封装在了内部,我们只需要简单调用几行代码就可以完成通信操作了。 Universal-Image-Loader,它使得在界面上显示网络图片的操作变得极度简单,开发者不用关心如何从网络上获取图片,也不用关心开启线程、回收图片资源等细节,Uni 阅读全文
摘要:
主要有四大模块: DbUtils模块: android中的orm(对象关系映射)框架,一行代码就可以进行增删改查; 支持事务,默认关闭; 可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等; 支持绑定外键,保存实体时外键关联实体自动保存或更新; 自动加载外键关联实体 阅读全文
摘要:
EventBus是一个事件发布和订阅的框架。EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast 在Fragment,Activity,Service,线程之间传递消息。优点是开销小,代码更优雅。以及将发送者和接收者解耦。 阅读全文
摘要:
1. 两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。 "^The":表示所有以"The"开始的字符串("There","The cat"等); "of despair$":表示所以以"of despair"结尾的字符串; "^abc$":表示开始和结尾都是"abc"的字符 阅读全文
摘要:
MVC(Model_view_contraller)”模型_视图_控制器”。 MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。从右图可以 阅读全文
摘要:
首先判断instance是不是为null,如果为null,加锁初始化;如果不为null,直接返回instance。 该类的构造方法被private修饰,外部访问者只能通过getSingleton方法获得实例,而不能自己再创建实例,可以保证系统中只有一个实例。 通过一个线程安全的方法来得到一个实例,但 阅读全文
摘要:
面向对象具有封装性,继承性,多态性.封装隐蔽了对象内部不需要暴露的细节,使得内部细节的变动跟外界脱离,只依靠接口进行通信.封装性降低了编程的复杂性. 通过继承,使得新建一个类变得容易,一个类从派生类那里获得其非私有的方法和公用属性的繁琐工作交给了编译器. 而继承和实现接口和运行时的类型绑定机制所产生 阅读全文
摘要:
栈与堆都是Java用来在Ram中存放数据的地方。Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和 multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回 阅读全文
摘要:
Android N主要在运行时和图形处理上做了更新。 运行时间上,Android N对编译器进行了优化,软件的运行时间提升了3-6倍。引入了一个全新的JIT编译器,使得App安装速度快了75%,编译代码的规模减少了50%。 图形处理方面,N加入了一个新的图形工具Vulkan,可以帮助游戏的视觉体验更 阅读全文
摘要:
1. Android签名机制及原理 Android系统在安装APK的时候,首先会检验APK的签名,如果发现签名文件不存在或者校验签名失败,则会拒绝安装,所以应用程序在发布之前一定要进行签名。给APK签名可以带来以下好处: 应用程序升级:若包名相同而签名不同,系统会拒绝安装新版应用。 应用程序模块化: 阅读全文
摘要:
Binder在Android系统中江湖地位非常之高。在Zygote孵化出system_server进程后,在system_server进程中出初始化支持整个Android framework的各种各样的Service,而这些Service从大的方向来划分,分为Java层Framework和Nativ 阅读全文
摘要:
我们使用Java开发android,在编译打包APK文件时,会经过以下流程 Dalvik是Google公司自己设计用于Android平台的Java虚拟机。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式 阅读全文
摘要:
C/C++过于底层,开发者要花很多的经历对C/C++的语言研究清楚,例如C/C++的内存机制,如果稍不注意,就会忘了开启或者释放。而Java的GC会自动处理这些,省去了很多的时间让开发者专注于自己的业务。所以才会从C/C++的底层慢慢向上变成了JAVA的开发语言,该层通过JNI和核心运行库层进行交互 阅读全文
摘要:
Android的四层架构分别为Linux2.6内核层,核心库层,应用框架层,应用层。Framework层为我们开发应用程序提供了非常多的API,满足我们业务上的需求。(Android是基于Linux内核的,因此属于软实时操作系统) 我们可以称Framework层才真正是Java语言实现的层,在这层里 阅读全文
摘要:
Google 2015年 9月28日公告:为了Android开发商可以制作出更加复杂的app和游戏,Google Play游戏包体(APK)大小由原来的50MB提高到100MB。但是针对Android 3.2及以下版本(API 13或更低)的包体限制最高依然是50MB, 对于Android 4.0或 阅读全文