
Android开发进阶
文章平均质量分 70
怎么连话都说不清楚
这个作者很懒,什么都没留下…
展开
-
图片的三级缓存策略(内存LruCache+磁盘DiskLruCache+网络Volley)
在开发安卓应用中避免不了要使用到网络图片,获取网络图片很简单,但是需要付出一定的代价——流量。对于少数的图片而言问题不大,但如果手机应用中包含大量的图片,这势必会耗费用户的一定流量,如果我们不加以处理,每次打开应用都去网络获取图片,那么用户可就不乐意了,这里的处理就是指今天要讲的缓存策略(缓存层分为三层:内存层,磁盘层,网络层)。 关于缓存层的工作,当我们第一次打开应用获取图片时,先到网转载 2015-07-17 13:59:49 · 6587 阅读 · 1 评论 -
内存泄露之常见原因与用户实践
常见原因1.集合类集合类如果仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。如果这个集合类是全局性的变量 (比如类中的静态属性,全局性的 map 等即有静态引用或 final 一直指向它),那么没有相应的删除机制,很可能导致集合所占用的内存只增不减。 2.单例模式不正确使用单例模式是引起内存泄露的一个常见问题,单例对象在被初始化后将在转载 2015-12-15 16:43:39 · 682 阅读 · 0 评论 -
【MDCC2015】 平台与技术-Android专场总结
Android开发的主要问题包括五个方面: 1.性能;2.产品质量;3.产品迭代;4.多进程架构;5.其它典型问题。在性能方面,运行速度依赖于性能分析、优化UI布局,优化算法和数据结构和业务逻辑调整。 防止内存泄露是一个需要特别注意的问题。当然,占用内存占用的因素还包括不够优化的数据结构、图片,所以能少用图片就尽量少用,而对于多进程架构,要注意Android是基原创 2015-11-11 18:16:22 · 592 阅读 · 0 评论 -
RxJava学习资源
讲解视频:http://boolan.com/lecture/1000001243#0-tsina-1-68759-397232819ff9a47a7b7e80a40613cfe1大头鬼整理:https://github.com/lzyzsd/Awesome-RxJava原创 2015-12-09 15:08:21 · 715 阅读 · 0 评论 -
Android版本更新时对SQLite数据库升级或者降级遇到的问题
SQLite是Android内置的一个很小的关系型数据库。SQLiteOpenHelper是一个用来辅助管理数据库创建和版本升级问题的抽象类。我们可以继承这个抽象类,实现它的一些方法来对数据库进行自定义操作。下面两个方法必须重写:public void onCreate(SQLiteDatabase db)public void onUpgrade(SQLiteDatabase db, i转载 2015-12-17 12:11:00 · 9838 阅读 · 0 评论 -
Android 性能优化总结
之前看了很多关于优化的例子,最近项目也正在这个阶段,看的太多太杂难免有些混乱,所以就整理记录下来,方便以后的补充和学习。一、界面优化:(1).使用开发者选项中的[调试GPU过度绘制]根据显示的颜色判断(2).使用开发者选项中的[GPU呈现模式分析]根据条形图,检测绘制失帧情况(3).查看层级结构可以用HierarchyViewer的工具进行分析(4).通过使用 Lint 来原创 2015-12-18 14:28:12 · 881 阅读 · 0 评论 -
使用硬件层来实现灰度视图
最近从设计团队那里得到一个需求,让一个特定的view在彩色和灰度之间切换。灰度,一个专用术语,意思是去掉一张图片中的所有饱和度。我快速Google 了一下得到了如下的代码:public Bitmap toGrayscale(Bitmap original) { int height = original.getHeight(); int width = orig转载 2015-11-02 17:21:03 · 568 阅读 · 0 评论 -
Android中AIDL及其使用
1、为什么要有AIDL?无论学什么东西,最先得弄明白为什么要有这个东西,不要说存在即是合理,存在肯定合理,但是你还是没有明白。对于AIDL有一些人的浅显概念就是,AIDL可以跨进程访问其他应用程序,和其他应用程序通讯,那我告诉你,很多技术都可以访问,如广播(应用A在AndroidManifest.xml中注册指定Action的广播)应用B发送指定Action的广播,A就能收到信息,这样也能看成转载 2015-10-29 10:08:29 · 546 阅读 · 0 评论 -
handler底层是如何将消息从子线程发送到主线程
这个问题的实质是handler机制+引用的传递.理解handler机制有很多方法,我推荐的方法是从四个关键类Handler、Message、MessageQueue、Looper的方法入手来弄清消息传递这一整条线的逻辑:这条线的走向是:(相关对外提供的方法可以用eclipse或者source insight来查看.)1产生消息对象2-->消息相关属性(what,obj,target转载 2015-10-12 14:07:59 · 3926 阅读 · 0 评论 -
handler总结
概述 Handler是android用来更新UI,处理消息的机制。使用线程和Handler更新UI方法一 新建handler对象,并覆写handleMessage(),在主线程中开启一个子线程,进行耗时操作(比如下载图片),得到图片之后,利用handler的sendMessage(),将图片发送给handler,在handleMessage()中进行UI的更新。发送转载 2015-10-12 14:13:06 · 551 阅读 · 0 评论 -
Android 开发中 iBeacon的使用
iBeacon的工作原理是基于Bluetooth Low Energy(BLE)低功耗蓝牙传输技术,iBeacon基站不断向四周发送蓝牙信号,当智能设备进入设定区域时,就能够收到信号。只要满足iBeacon技术标准的都可以使用,所以Android也能够支持iBeacon。Google在Android4.3中支持BLE技术定位一直是非常关键的功能。通过iBeacon基站的部署能够实现室内导航原创 2015-08-10 20:08:03 · 38506 阅读 · 8 评论 -
什么导致了Context泄露:Handler&内部类
public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() { @Override public void handleMessage(Message msg) { // ... } }}如果没有仔细观察,上转载 2015-10-24 17:37:48 · 461 阅读 · 0 评论 -
Android应用UI架构
这个标题听起来可能有点大,其实这里主要就是讨论一个应用程序的UI组件,是全用Activity还是全用Fragment,或者是二者皆有,以及使用Activity和Fragment的一些注意事项。 Activity or Fragment从API 11,Honeycomb开始,Google在Android之中加入了Fragment,一个轻量级的,可复用的,模块化的UI组转载 2015-10-24 17:47:30 · 740 阅读 · 0 评论 -
Android APK优化工具Zipalign详解
Android SDK中包含了一个用于优化APK的新工具zipalign。它提高了优化后的Applications与Android系统的交互效率(俗话:“要致富先修路”,Android小组重新为Applications与Android系统之间搭建了一条高速公路),从而可以使整个系统的运行速度有了较大的提升。Android小组强烈建议开发者在发布新Apps之前使用zipalign优化工具,而且对于已转载 2015-10-22 18:06:54 · 772 阅读 · 0 评论 -
Android内存泄露的原因
(一)释放对象的引用误将一个本来生命周期短的对象存放到一个生命周期相对较长的对象中,也称“对象游离“。隐蔽的内部类(Anonymous Inner Class):mHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {....}};转载 2015-11-04 16:34:56 · 671 阅读 · 0 评论 -
内存泄露从入门到精通三部曲之常见原因与用户实践
常见原因1.集合类集合类如果仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。如果这个集合类是全局性的变量 (比如类中的静态属性,全局性的 map 等即有静态引用或 final 一直指向它),那么没有相应的删除机制,很可能导致集合所占用的内存只增不减。2.单例模式不正确使用单例模式是引起内存泄露的一个常见问题,单例对象在被初始化后将在 JVM 的整个生命周转载 2015-12-04 16:30:24 · 696 阅读 · 0 评论