
Android开发经验
文章平均质量分 89
赵凯强
热爱编程,支持开源,喜欢分享
展开
-
【Android开发经验】APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了
只要是需要进行联网获取数据的APP,那么不管是版本更新,还是图片缓存,都会在本地产生缓存文件。那么,这些缓存文件到底放在什地方合适呢?系统有没有给我们提供建议的缓存位置呢?不同的缓存位置有什么不同呢?今天这篇文章就是主要来说明这个问题的。原创 2015-02-03 17:18:49 · 22829 阅读 · 6 评论 -
【凯子哥带你夯实应用层】还在用XListView?试试更漂亮的AutoLoadListView吧!
关于上拉刷新和下拉加载,已经有不少的解决方案了,XListView和PullToRefresh应该是被广为熟知的开源项目,项目很棒,可以解决我们的需求。但是,今天咱们用一种更简单的方式,来实现上拉刷新和下拉加载功能,我叫它AutoLoadListView~先来一张效果图。刷新效果使用19版本之后的v4兼容包的S原创 2015-03-31 10:59:34 · 6316 阅读 · 11 评论 -
【凯子哥带你夯实应用层】读 Develop API Guides 有感(一)
读 Develop API Guides 有感(一)我们可以使用下面的代码动态检测当前设备是否具备某一个特性,如是否有方向传感器PackageManager pm = getPackageManager();if(!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) { // This device do原创 2015-03-31 15:42:25 · 2701 阅读 · 2 评论 -
【凯子哥带你夯实应用层】使用ActionProvider实现子菜单时遇到的一个坑
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 最近在重温Android基础,在看到ActionProvider的时候遇到一个坑,分享到大家,避免入坑。 首先简单介绍下ActionProvider。 ShareActionProvider你应该用过吧?就是使用系统自带的分享功能,其实ShareActionProvider就是Actio原创 2015-03-18 11:41:51 · 4131 阅读 · 8 评论 -
【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(一)——逆向工程及TcpDump抓包入门
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 转眼之间,毕业季已经来临,四年充实而忙碌的大学也将走到尾声,我很期待毕业后的生活呀! 首先多谢各位对我的Blog的支持,大家互相交流学习,作为回报,我把自己收藏的好文章分享给大家,详情请戳Android相关问题的好文章整理——温故而知新,可以为师矣。 除此之外呢,最近一直忙于工作和准备原创 2015-04-14 15:03:31 · 16526 阅读 · 30 评论 -
【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(二)——大图显示模式、评论“盖楼”效果实现详解
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 在前一篇文章中,我们学习了如何进行逆向工程和TcpDump进行抓包,获取我们的数据接口,那么有了数据之后,我们就可以开始代码编写工作了。 本项目在前几天获得了daimajia大神的推荐,star数已经达到115,多谢大家的支持,欢迎提建议和意见。 项目地址:https://github.com原创 2015-04-27 14:54:24 · 14098 阅读 · 33 评论 -
【API Guides】Android字符串资源的格式化和样式
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 本文章翻译自Android开发指导,介绍了如何对字符串资源进行格式化和设置不同的样式。 想看原文,请戳这里字符串资源的格式化和样式小心撇号和引用号的坑格式化字符串用HTML添加样式字符串资源的格式化和样式小心撇号和引用号的坑如果我们的字符串资源里面有撇号(‘),那么我们必须加上转移字符,变翻译 2015-05-21 15:34:02 · 4381 阅读 · 1 评论 -
【API Guides】Android是如何根据限定符,来寻找合适的资源文件的?
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 本文主要介绍了当我们使用限定符修饰我们的资源文件夹,例如drawable-en-ldpi时,Android系统是根据什么规则对这些文件夹进行筛选和选择的。 本文不是严肃翻译,想查看原文的请戳 Providing Resources我们都知道,当我们使用限定符修饰资源文件夹,比如说drawabl翻译 2015-05-19 15:20:50 · 4992 阅读 · 6 评论 -
【凯子哥带你夯实应用层】使用ActionMode实现有删除动画的多选删除功能
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 ActionMode是3.0之后,官方推荐的一种上下文菜单的实现方式,在之前一直用的是Context Menu,今天这篇文章简单介绍一下ActionMode,并实现多选删除功能。 如果要在ListView这类控件中实现多选,我们可以通过设置setChoiceMode(ListView.CHOI原创 2015-03-16 11:00:37 · 4470 阅读 · 5 评论 -
【凯子哥带你夯实应用层】滚来滚去,滚来滚去...Scroller相关类使用大揭秘!!!
其实说到这里,有的同学可能比较迷惑,OverScroller和Scroller有什么区别呢?事实上,这两个类都属于Scrollers,Scroller出现的比较早,在API1就有了,OverScroller是在API9才添加上的,出现的比较晚,所以功能比较完善,Over的意思就是超出,即OverScroller提供了对超出滑动边界的情况的处理,这两个类80%的API是一致的,OverScroller比Scroller添加了一下几个方法 ☞ isOverScrolled() ☞ springB原创 2015-03-01 17:53:55 · 9074 阅读 · 15 评论 -
【凯子哥带你夯实应用层】Android的Google官方设计指南(上)
本文章是我公司一个大牛之前的公司同事翻译的Android的Google官方设计指导,经过我整理而成,分享给大家,欢迎转载,但是请保留出处和翻译作者。本指导内容详实、规范,无论是初级开发者还是高级开发者,甚至是公司产品设计和美工,都应该研读学习,特此推荐!由于文章内容较颇多,所以我分为几篇发布,方便大家阅读学习。如果对你有帮助,请评论或者顶一下代表支持,谢谢!翻译 2015-03-03 09:03:42 · 18643 阅读 · 29 评论 -
【Android开发经验】Bitmap高效显示系列——如何有效的加载大尺寸Bitmap
我们先看一下加载原图消耗的时间和内存,内存分配190ms,内存占用44.92M,因为我的Smartisan1内存充足,所以没问题,如果是比较老的机型,可能就直接崩掉了!下面我们再看使用小尺寸的运行结果,内存分配花费89ms,内存占用10.39M,相比之前内存少占用34.53M,所以说使用小尺寸的Bitmap时非常有必要的!翻译 2015-02-05 09:45:19 · 5538 阅读 · 11 评论 -
【Android界面实现】Starting an Activity(Activity生命周期金字塔模型)
转载请注明:http://blog.youkuaiyun.com/zhaokaiqiang1992 本文翻译自http://developer.android.com/training/basics/activity-lifecycle/starting.html ,大家可以去看原文。 Android并不象其他的程序,它不是从main()函数开始加载的,Android系统是通过在不同的时期调用生命周期的对应回调方法完成代码的初始化的。所以如果要了解Android程序,就必须了解启动顺序和销毁顺序。翻译 2014-12-14 22:47:31 · 2933 阅读 · 3 评论 -
【Android开发经验】低版本中PopupWindow的init方法空指针异常的问题
昨天测试人员给我提交了一个BUG,在2.3版本中,弹出popupwindow的时候,会有空指针异常,在高版本没有问题,下面是报错信息(找的一段一样的异常,我的异常已经解决了)异常信息: Exception: null堆栈信息: android.widget.PopupWindow.setContentView(PopupWindow.java:384)android.widget.Po原创 2014-12-31 11:52:31 · 2920 阅读 · 0 评论 -
【Android开发经验】ViewHolder到底用什么修饰?static?final?static final?
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 现在大家都知道用ViewHolder来实现listview的优化了,但是,ViewHolder到底要用什么来修饰呢?这种修饰有什么意义呢?在一个ListView里面,存在多少个VIewHolder实例呢?为什么VIewHolder能够减少findview的次数,优化效率呢?为了弄清楚这个问题,我做了以原创 2015-01-15 15:02:52 · 10161 阅读 · 18 评论 -
【Android界面实现】关于Android中9patch图的一点小解释
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 关于为什么使用.9图,我就不长篇大论了,就是为了减少图片资源体积,我们这篇文章重点解决.9图的制作的一些小问题。 .9的制作,实际上就是在原图片上添加1px的边界,然后按照我们的需求,把对应的位置设置成黑色线,系统就会根据我们的实际需求进行拉伸。 下图是对.9图的四边的含义的解释,左上边代原创 2015-01-21 14:47:34 · 4965 阅读 · 4 评论 -
【Android开发经验】兼容不同的屏幕大小(推荐,最官方的适应屏幕大小的经验)
由于Android设备的碎片特性,关于屏幕适配的话题一直绵绵不休,这篇文章是Android开发者官网的屏幕适配教程,算是非常官方的解决方案,我们可以从这里学到很多。这节课教你如何通过以下几种方式支持多屏幕: ☞确保你的布局能自适应屏幕 ☞根据你的屏幕配置提供合适的UI布局 ☞确保你当前的布局适合当前的屏幕 ☞提供合适的位图(bitmap)翻译 2015-02-10 09:56:09 · 14374 阅读 · 8 评论 -
【Android开发经验】设置用户头像并裁剪,仅仅是这么简单?
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 在做APP的时候,如果有用户系统功能,那么一般都逃不了这个需求,就是给用户设置头像,而设置头像,又包括从拍照和从相册选取两个方式,而且选择了之后,一般又都会要求对图像进行裁剪,让用户设置头像。今天这篇文章就是介绍如何完成这个需求的。 我们首先分析一下需求。关于拍照和从相册选取,都可以向系统发送特原创 2015-01-22 17:07:59 · 13371 阅读 · 5 评论 -
【Android开发经验】关于“多线程断点续传下载”功能的一个简单实现和讲解
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 上班第一天,在技术群里面和大家闲扯,无意中谈到了关于框架的使用,一个同学说为了用xUtils的断线续传下载功能,把整个库引入到了项目中,在google的官方建议中,是非常不建议这种做法的,集合框架虽然把很多功能集成起来,但是代码越多,出现问题的可能越大,而且无形之中增加了APK的大小,因此,得不偿失。原创 2015-02-25 19:46:50 · 8026 阅读 · 15 评论 -
【凯子哥带你夯实应用层】都说“知乎”逼格高,我们来实现“知乎”回答详情页动画效果
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 2014已经远去,2015年的目标很简单,就是继续熟悉Android的上层API,虽然偶尔会为了某个问题去研究下FrameWork的代码,但是对于我们这种新手来说,只有对上层的API用的熟练了,才能更好的往下研究原理。所以,今年的任务就是继续学习和研究Android的上层API的使用,顺便写一篇毕业原创 2015-02-27 16:33:20 · 9352 阅读 · 30 评论 -
使用Android Studio进行单元测试
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 Android Studio已经到了1.2版本,国内的开发者基本也在从Eclipse向Android Studio进行转变,对于Android开发者,以后必将是Android Studio的天下。 昨天在完善煎蛋项目的时候,需要进行单元测试,在Eclipse环境中进行是很简单的,但是在Android翻译 2015-05-19 11:37:14 · 21803 阅读 · 4 评论 -
FaceBook推出的Android图片加载库-Fresco
在Android设备上面,快速高效的显示图片是极为重要的。过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题。图片太大,但是手机的内存却很小。每一个像素的R、G、B和alpha通道总共要占用4byte的空间。如果手机的屏幕是480*800,那么一张屏幕大小的图片就要占用1.5M的内存。手机的内存通常很小,特别是Android设备还要给各个应用分配内存。在某些设备上,分给Facebook App的内存仅仅有16翻译 2015-04-02 09:50:12 · 6903 阅读 · 9 评论 -
【Android开发经验】如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库
转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992 今天一打开博客,发现一位朋友给我发了一封私信,请教下面的问题,所以特写此文章,为其解惑。 从这位朋友的提问中,我们需要了解下面的这些问题,才能给他很好的解答:(1)如何获取手机里所有歌曲的信息?(2)在歌曲文件发生改变,比如增删操作之后,如何及时的更新媒体库,从而获取到最新的歌曲信息?(3)在4原创 2014-12-04 14:41:37 · 13220 阅读 · 9 评论 -
【凯子哥带你学Android】Android专用Log开源项目——KLog
在Android开发和调试的过程中,Log的使用是非常频繁的,一个好的Log工具可以帮你节省很多时间,所以凯子哥抽空写了个这个开源项目KLog,希望可以帮助大家提高开发效率,本开源库的灵感来自于LoggerKLog的特点运行演示使用详解KLogdKLogdStringKLogdTagStringKLogjsonStringKLogjsonTagString使用JCenter引用为原创 2015-11-14 18:23:36 · 12349 阅读 · 24 评论 -
关于三种『应用内主题切换』开源项目的一点思考
Theme遍历View开源项目MultipleThemeColorfulAndroidChangeSkin我的思考参考文章关于我这里讨论的只是白天、夜晚主题切换这种场景,不涉及外部资源加载。现在要给App添加夜晚主题,所以就需要选择一种应用内部更换主题的实现方案,目前来说,比较常见的几种方式如下:Theme设置Theme来切换不同主题。优点:利用系统自带的机制实现,根据标志位set原创 2015-12-10 17:41:45 · 5010 阅读 · 9 评论 -
开源项目OkHttpPlus——支持GET、POST、UI线程回调、JSON格式解析、链式调用、文件上传下载
开源项目OkHttpPlus——OkHttp封装库,支持GET、POST、UI线程回调、JSON格式解析、链式调用、小文件上传下载及进度监听OkHttpPlus介绍项目地址:https://github.com/ZhaoKaiQiang/OkHttpPlus主要功能:OkHttp封装,支持GET、POST、UI线程回调、JSON格式解析、链式调用、小文件上传下载及进度监听等功能为什么要写这么一个库呢原创 2015-11-24 18:31:37 · 22917 阅读 · 10 评论 -
【凯子哥带你学Framework】Activity界面显示全解析
前几天凯子哥写的Framework层的解析文章《Activity启动过程全解析》,反响还不错,这说明“写让大家都能看懂的Framework解析文章”的思想是基本正确的。 我个人觉得,深入分析的文章必不可少,但是对于更多的Android开发者——即只想做应用层开发,不想了解底层实现细节——来说,“整体上把握,重要环节深入“是更好的学习方式。因为这样既可以有完整的知识体系,又不会在浩瀚的源码世原创 2015-11-09 10:26:26 · 79157 阅读 · 23 评论 -
《Android源码设计模式解析》读书笔记——Android中你应该知道的设计模式
断断续续的,《Android源码设计模式解析》也看了一遍,书中提到了很多的设计模式,但是有部分在开发中见到的几率很小,所以掌握不了也没有太大影响。 我觉得这本书的最大价值有两点,一个是从设计模式的角度去理解Android源码,结合着日常开发中的常用类,对设计模式的理解会更加的深刻;另外一个好处就是了解常用模式,再看其他人写的代码的时候,更容易理解代码思路。下面是我的读书笔记和一些思考,设计原创 2015-12-13 18:03:58 · 19271 阅读 · 3 评论 -
【凯子哥带你学Android】Andriod性能优化之列表卡顿——以“简书”APP为例
这几天闲得无聊,就打开手机上的开发者模式里面的“GPU过度绘制”功能,看看别家的App做的咋样,然后很偶然的打开了“简书”,然后就被它的过度绘制惊呆了,于是写了这篇性能分析的文章,从一个只有APK文件的角度,说下如何寻找布局中可能存在的性能问题,以及解决方案。本文章以简书Android最新版本1.9.1进行分析。GPU过度绘制Hierarchy ViewSysTraceTraceView总结原创 2015-11-20 19:43:49 · 14217 阅读 · 14 评论 -
Android重难点解析——面试中可能被问到的那些问题
这篇项目主要介绍Android中的一些重难点概念,也包括面试中可能被问到的经典问题。 因为这些知识点比较琐碎,不太适合写成一篇文章,所以采用Github管理,内容会首先在Github更新,这里不定时同步,如果你想第一时间收到通知,请关注Github中的该项目。项目地址Android重难点解析,欢迎star,follow,将持续分享Android开发知识文章列表谈谈你对Applicati原创 2015-12-11 16:12:52 · 23472 阅读 · 7 评论 -
关于『65535问题』的一点研究与思考
背景产生65535问题的原因LinearAlloc问题的原因Google提出的MultiDex方案MultiDex实现原理缺点美团的多Dex分包动态异步加载方案多Dex分包异步加载方案参考资料关于我背景目前来说,对于使用Android Studio的朋友来说,MultiDex应该不陌生,就是Google为了解决『65535天花板』问题而给出的官方解决方案,但是这个方案并不完美,原创 2015-12-27 16:49:31 · 23714 阅读 · 19 评论 -
【Android开发经验】LayoutInflater—— 你可能对它并不了解甚至错误使用
这个标题起的有点夸张哈,但是LayoutInflater这个类的一些用法,在Android开发者使用的过程中,确实存在着一些很普遍的误区,最起码我研究的这么多小项目的源代码,基本上都在错误的使用这个类。今天,看到了一篇文章讲LayoutInflater的用法,瞬间感觉自己对这个类确实不够了解,于是简单的看了下LayoutInflater类的源代码,对这个类有了新的认识。首先,LayoutInf原创 2014-06-30 17:39:03 · 4942 阅读 · 5 评论 -
Android相关问题的好文章整理——温故而知新,可以为师矣
本篇文章将持续更新,收集我看过的写的非常好的文章,以便日后查阅回顾。 优快云各大专家的Blog都是一个个的宝库,从现在开始,启动Blog“屠戮”计划,毕业之前,研究完所有移动开发专家Blog的博客!原创 2015-01-08 18:34:18 · 17690 阅读 · 619 评论 -
Android屏幕适配全攻略(最权威的官方适配指导)
Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因、重要概念、解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将不再有疑惑!Android屏幕适配出现的原因在原创 2015-05-19 11:34:17 · 181563 阅读 · 91 评论 -
购物类APP之王——淘宝安卓版(一)
从今天开始,打算开一个专栏,用来对目前热门的APP的用户体验进行分析。做APP需要的不光是技术,还应该有很好的设计思想,因此,有了写一个用户体验的专栏的想法。因为平常都需要工作,时间可能不是很充足,慢慢的一点点写吧!今天打算分析的第一款软件,堪称购物类APP之王,那就是淘宝的客户端。名称:淘宝版本:安卓安装包大小:36.03M版本:4.9.3下载好安装包,安装到手机之后,一原创 2014-09-23 23:28:04 · 7132 阅读 · 0 评论 -
【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(三)——使用GreenDao实现本地Sqlite缓存
到目前为止,煎蛋的Android项目算是告一段落了,功能基本都已完成,那么今天,我就介绍一下在煎蛋这个项目里,是怎么完成数据缓存功能的。想看代码的请戳煎蛋项目的GITHUB地址转载请注明出处:http://blog.youkuaiyun.com/zhaokaiqiang1992缓存功能的解决方案配置GreenDao实现缓存功能其他资料缓存功能的解决方案因为算是一个阅读类的应原创 2015-05-14 08:52:34 · 7802 阅读 · 16 评论 -
购物类APP之王——淘宝安卓版(二)
在上一篇的文章中,简单的介绍了一下淘宝客户端的首页的导航栏,还有一些小的细节问题,这一篇,我们还是继续剖析淘宝客户端安卓版。 我们首先还是先放出淘宝的主界面 在这个界面中,最上方是一个广告栏,可以点击进入对应的活动界面。广告栏可以手动的滑动,而且滑动体验非常好,在使用其他软件的时候,会发生左右广告栏的滑动和上下的刷新滑动出现冲突的情况,表现出来就是界面一原创 2014-09-24 22:58:56 · 4512 阅读 · 0 评论 -
Android开发相关的Blog推荐——跟随大神的脚步才能成长为大神
本篇文章主要纪录我在学习过程中,发现的非常给力的优快云Blog和个人Blog,这些Blog都有一个共同的特点,即内容详实,讲解透彻,也算是给后来的初学者指一条路吧!只要你下定决心跟随强者的脚步,成为人们眼中的大神,只不过是时间问题! 下面排名不分先后原创 2015-02-11 11:53:33 · 38911 阅读 · 50 评论 -
用RxJava.Observable取代AsyncTask和AsyncTaskLoader-RxJava Android模版
在网上有很多关于RxJava入门指南的帖子,其中一些是基于Android环境的。但是,我想到目前为止,很多人只是沉迷于他们所看到的这些,当要解决在他们的Android项目中出现的具体问题时,他们并不知道如何或者是为什么要使用RxJava。在这一系列的文章中,我想要探索在我工作过的一些依赖于RxJava架构的Android项目中的模式。翻译 2015-03-30 14:54:01 · 9817 阅读 · 2 评论 -
Android中图像变换Matrix的原理、代码验证和应用(二)
注:本篇文章为转载文章,因为原文格式排版较乱,但是内容非常棒,所以整理一下,方便以后查看。 查看原文请戳:http://blog.youkuaiyun.com/pathuang68/article/details/6991988 Matrix介绍文章请戳:http://blog.youkuaiyun.com/pathuang68/article/details/6991867package com.pat.t翻译 2015-08-25 22:30:41 · 3520 阅读 · 1 评论