自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赵凯强

专注Android移动开发,热爱分享,支持开源

  • 博客(144)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 【SealDEV 倾情奉献】Android APK 安装过程详解

开发 Android 应用后,一般都会安装到手机上去运行,了解应用是如何安装到手机上的,可以更好的理解应用的本质,理解应用是如何运行的,在自己开发的应用遇到一些问题时,会从更深层次去分析,快速定位找到原因。这一篇文章中我们就来详细分析一下应用是如何安装的。背景知识要想详细了解 APK 的安装过程,需要了解一些基础概念,包括:什么是 APK什么是 DEX 文件和 ODEX 文件什么是 OAT 文

2017-06-05 09:07:43 3711 6

原创 关于『65535问题』的一点研究与思考

背景产生65535问题的原因LinearAlloc问题的原因Google提出的MultiDex方案MultiDex实现原理缺点美团的多Dex分包动态异步加载方案多Dex分包异步加载方案参考资料关于我背景目前来说,对于使用Android Studio的朋友来说,MultiDex应该不陌生,就是Google为了解决『65535天花板』问题而给出的官方解决方案,但是这个方案并不完美,

2015-12-27 16:49:31 22673 19

原创 《Android源码设计模式解析》读书笔记——Android中你应该知道的设计模式

断断续续的,《Android源码设计模式解析》也看了一遍,书中提到了很多的设计模式,但是有部分在开发中见到的几率很小,所以掌握不了也没有太大影响。 我觉得这本书的最大价值有两点,一个是从设计模式的角度去理解Android源码,结合着日常开发中的常用类,对设计模式的理解会更加的深刻;另外一个好处就是了解常用模式,再看其他人写的代码的时候,更容易理解代码思路。下面是我的读书笔记和一些思考,设计

2015-12-13 18:03:58 19005 3

原创 Android重难点解析——面试中可能被问到的那些问题

这篇项目主要介绍Android中的一些重难点概念,也包括面试中可能被问到的经典问题。 因为这些知识点比较琐碎,不太适合写成一篇文章,所以采用Github管理,内容会首先在Github更新,这里不定时同步,如果你想第一时间收到通知,请关注Github中的该项目。项目地址Android重难点解析,欢迎star,follow,将持续分享Android开发知识文章列表谈谈你对Applicati

2015-12-11 16:12:52 23247 7

原创 关于三种『应用内主题切换』开源项目的一点思考

Theme遍历View开源项目MultipleThemeColorfulAndroidChangeSkin我的思考参考文章关于我这里讨论的只是白天、夜晚主题切换这种场景,不涉及外部资源加载。现在要给App添加夜晚主题,所以就需要选择一种应用内部更换主题的实现方案,目前来说,比较常见的几种方式如下:Theme设置Theme来切换不同主题。优点:利用系统自带的机制实现,根据标志位set

2015-12-10 17:41:45 4895 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 22633 10

原创 【凯子哥带你学Android】Andriod性能优化之列表卡顿——以“简书”APP为例

这几天闲得无聊,就打开手机上的开发者模式里面的“GPU过度绘制”功能,看看别家的App做的咋样,然后很偶然的打开了“简书”,然后就被它的过度绘制惊呆了,于是写了这篇性能分析的文章,从一个只有APK文件的角度,说下如何寻找布局中可能存在的性能问题,以及解决方案。本文章以简书Android最新版本1.9.1进行分析。GPU过度绘制Hierarchy ViewSysTraceTraceView总结

2015-11-20 19:43:49 13966 14

原创 【凯子哥带你学Android】Android专用Log开源项目——KLog

在Android开发和调试的过程中,Log的使用是非常频繁的,一个好的Log工具可以帮你节省很多时间,所以凯子哥抽空写了个这个开源项目KLog,希望可以帮助大家提高开发效率,本开源库的灵感来自于LoggerKLog的特点运行演示使用详解KLogdKLogdStringKLogdTagStringKLogjsonStringKLogjsonTagString使用JCenter引用为

2015-11-14 18:23:36 12105 24

原创 关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析

从上一篇文章《Android屏幕适配全攻略》写完之后,经常会有朋友问我这个问题:“能不能一个App只提供一套切图适应所有的分辨率呢?”我觉得有必要写一篇文章来研究一下这个问题,所以就有了这篇文章。研究内容研究方法测试环境研究过程结果分析结论另外一个难以解释的问题研究内容本篇内容主要探讨以下场景:同一张图片,放置在不同的drawable文件夹,在同一设备上

2015-11-11 22:02:47 27595 42

原创 【凯子哥带你学Framework】Activity界面显示全解析

前几天凯子哥写的Framework层的解析文章《Activity启动过程全解析》,反响还不错,这说明“写让大家都能看懂的Framework解析文章”的思想是基本正确的。 我个人觉得,深入分析的文章必不可少,但是对于更多的Android开发者——即只想做应用层开发,不想了解底层实现细节——来说,“整体上把握,重要环节深入“是更好的学习方式。因为这样既可以有完整的知识体系,又不会在浩瀚的源码世

2015-11-09 10:26:26 20752 23

原创 【凯子哥带你学Framework】Activity启动过程全解析

It’s right time to learn Android’s Framework !一个App是怎么启动起来的? App的程序入口到底是哪里? Launcher到底是什么神奇的东西? 听说还有个AMS的东西,它是做什么的? Binder是什么?他是如何进行IPC通信的? Activity生命周期到底是什么时候调用的?被谁调用的? 等等…你是不是还有很多类似的疑问一直没有解决?没关

2015-10-27 10:14:17 54533 63

原创 【Android开源项目解析】RecyclerView侧滑删除粒子效果实现——初探Android开源粒子库 Leonids

前两天在微博上看到了这个侧滑删除的粒子效果,但是只有IOS的,所以心血来潮,写了个玩玩,下面简单介绍下实现的思路项目简介实现原理解析代码实现如何使用项目简介先不废话,上效果图项目地址:https://github.com/ZhaoKaiQiang/ParticleLayout实现原理解析其实看了那么多的关于侧滑删除的项目,再来思考这个问题,就so easy了!咱们先分析下需求: - 侧滑手

2015-09-23 17:12:45 7327 6

原创 【Android开源项目解析】仿支付宝付款成功及"天女散花"效果实现——看PathMeasure大展身手

话说,在前面两篇文章中,我们学习了BitmapShader、Path的基本使用,那么这一篇文章,咱们接着来学习一下PathMeasure的用法。什么,你没听说过PathMeasure?那你就要OUT咯~项目效果图PathMeasure介绍更多参考资料项目效果图废话不多说,在开始讲解之前,先看下最终实现的效果。效果一:仿支付宝支付成功效果效果

2015-09-15 21:35:28 7882 6

原创 【Android开源项目解析】QQ“一键下班”功能实现解析——学习Path及贝塞尔曲线的基本使用

早在很久很久以前,QQ就实现了“一键下班”功能。何为“一键下班”?当你QQ有信息时,下部会有信息数量提示红点,点击拖动之后,就会出现“一键下班”效果。本文将结合github上关于此功能的一个简单实现,介绍这个功能的基本实现思路。项目地址https://github.com/chenupt/BezierDemo最终实现效果实现原理解析我个人感觉,这个效果实现的很漂亮啊!那么咱们就来看看实现原理是什么

2015-09-13 20:10:45 5680 8

原创 【Android开源项目解析】背景有波浪效果的TextView——从Titanic项目学习BitmapShader的使用

项目地址https://github.com/RomainPiel/Titanic效果展示实现原理

2015-09-07 21:22:16 6910 4

翻译 Android中图像变换Matrix的原理、代码验证和应用(二)

注:本篇文章为转载文章,因为原文格式排版较乱,但是内容非常棒,所以整理一下,方便以后查看。 查看原文请戳:http://blog.csdn.net/pathuang68/article/details/6991988 Matrix介绍文章请戳:http://blog.csdn.net/pathuang68/article/details/6991867package com.pat.t

2015-08-25 22:30:41 3412 1

原创 This Activity already has an action bar supplied by the window decor

问题描述:继承自AppCompatActivity,使用Toolbar替代ActionBar的时候,出现错误错误信息:2.Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEA

2015-08-12 12:40:34 11527 4

翻译 【API Guides】Android字符串资源的格式化和样式

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 本文章翻译自Android开发指导,介绍了如何对字符串资源进行格式化和设置不同的样式。 想看原文,请戳这里字符串资源的格式化和样式小心撇号和引用号的坑格式化字符串用HTML添加样式字符串资源的格式化和样式小心撇号和引用号的坑如果我们的字符串资源里面有撇号(‘),那么我们必须加上转移字符,变

2015-05-21 15:34:02 4290 1

翻译 【API Guides】Android是如何根据限定符,来寻找合适的资源文件的?

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 本文主要介绍了当我们使用限定符修饰我们的资源文件夹,例如drawable-en-ldpi时,Android系统是根据什么规则对这些文件夹进行筛选和选择的。 本文不是严肃翻译,想查看原文的请戳 Providing Resources我们都知道,当我们使用限定符修饰资源文件夹,比如说drawabl

2015-05-19 15:20:50 4882 6

翻译 使用Android Studio进行单元测试

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 Android Studio已经到了1.2版本,国内的开发者基本也在从Eclipse向Android Studio进行转变,对于Android开发者,以后必将是Android Studio的天下。 昨天在完善煎蛋项目的时候,需要进行单元测试,在Eclipse环境中进行是很简单的,但是在Android

2015-05-19 11:37:14 21701 4

原创 Android屏幕适配全攻略(最权威的官方适配指导)

Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因、重要概念、解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将不再有疑惑!Android屏幕适配出现的原因在

2015-05-19 11:34:17 179836 91

原创 【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(三)——使用GreenDao实现本地Sqlite缓存

到目前为止,煎蛋的Android项目算是告一段落了,功能基本都已完成,那么今天,我就介绍一下在煎蛋这个项目里,是怎么完成数据缓存功能的。想看代码的请戳煎蛋项目的GITHUB地址转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992缓存功能的解决方案配置GreenDao实现缓存功能其他资料缓存功能的解决方案因为算是一个阅读类的应

2015-05-14 08:52:34 7721 16

原创 【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(二)——大图显示模式、评论“盖楼”效果实现详解

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在前一篇文章中,我们学习了如何进行逆向工程和TcpDump进行抓包,获取我们的数据接口,那么有了数据之后,我们就可以开始代码编写工作了。 本项目在前几天获得了daimajia大神的推荐,star数已经达到115,多谢大家的支持,欢迎提建议和意见。 项目地址:https://github.com

2015-04-27 14:54:24 13929 33

原创 【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(一)——逆向工程及TcpDump抓包入门

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 转眼之间,毕业季已经来临,四年充实而忙碌的大学也将走到尾声,我很期待毕业后的生活呀! 首先多谢各位对我的Blog的支持,大家互相交流学习,作为回报,我把自己收藏的好文章分享给大家,详情请戳Android相关问题的好文章整理——温故而知新,可以为师矣。 除此之外呢,最近一直忙于工作和准备

2015-04-14 15:03:31 16375 30

翻译 FaceBook推出的Android图片加载库-Fresco

在Android设备上面,快速高效的显示图片是极为重要的。过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题。图片太大,但是手机的内存却很小。每一个像素的R、G、B和alpha通道总共要占用4byte的空间。如果手机的屏幕是480*800,那么一张屏幕大小的图片就要占用1.5M的内存。手机的内存通常很小,特别是Android设备还要给各个应用分配内存。在某些设备上,分给Facebook App的内存仅仅有16

2015-04-02 09:50:12 6813 9

原创 【凯子哥带你夯实应用层】读 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 2633 2

原创 【凯子哥带你夯实应用层】还在用XListView?试试更漂亮的AutoLoadListView吧!

关于上拉刷新和下拉加载,已经有不少的解决方案了,XListView和PullToRefresh应该是被广为熟知的开源项目,项目很棒,可以解决我们的需求。但是,今天咱们用一种更简单的方式,来实现上拉刷新和下拉加载功能,我叫它AutoLoadListView~先来一张效果图。刷新效果使用19版本之后的v4兼容包的S

2015-03-31 10:59:34 6267 11

翻译 用RxJava.Observable取代AsyncTask和AsyncTaskLoader-RxJava Android模版

在网上有很多关于RxJava入门指南的帖子,其中一些是基于Android环境的。但是,我想到目前为止,很多人只是沉迷于他们所看到的这些,当要解决在他们的Android项目中出现的具体问题时,他们并不知道如何或者是为什么要使用RxJava。在这一系列的文章中,我想要探索在我工作过的一些依赖于RxJava架构的Android项目中的模式。

2015-03-30 14:54:01 9661 2

原创 【凯子哥带你夯实应用层】新手必备的常用代码片段整理(二)

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 以下内容来自多个开源项目的整理和自己的项目积累收集设备信息用于信息统计分析是否有SD卡动态隐藏软键盘动态显示软键盘动态显示或者是隐藏软键盘主动回到Home后台运行获取状态栏高度获取状态栏高度标题栏ActionBar高度获取MCCMNC代码 SIM卡运营商国家代码和运营商网络代码返回移动网

2015-03-29 11:05:56 4836 5

原创 【凯子哥带你夯实应用层】新手必备的常用代码片段整理(一)

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992以下内容来自多个开源项目的整理拨打电话 context.startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber))); }跳转至拨号界面

2015-03-29 09:34:59 6598 7

原创 【凯子哥带你夯实应用层】使用ActionProvider实现子菜单时遇到的一个坑

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992     最近在重温Android基础,在看到ActionProvider的时候遇到一个坑,分享到大家,避免入坑。    首先简单介绍下ActionProvider。    ShareActionProvider你应该用过吧?就是使用系统自带的分享功能,其实ShareActionProvider就是Actio

2015-03-18 11:41:51 4058 8

原创 【凯子哥带你夯实应用层】使用ActionMode实现有删除动画的多选删除功能

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992     ActionMode是3.0之后,官方推荐的一种上下文菜单的实现方式,在之前一直用的是Context Menu,今天这篇文章简单介绍一下ActionMode,并实现多选删除功能。    如果要在ListView这类控件中实现多选,我们可以通过设置setChoiceMode(ListView.CHOI

2015-03-16 11:00:37 4350 5

翻译 【凯子哥带你夯实应用层】Android的Google官方设计指南(上)

本文章是我公司一个大牛之前的公司同事翻译的Android的Google官方设计指导,经过我整理而成,分享给大家,欢迎转载,但是请保留出处和翻译作者。本指导内容详实、规范,无论是初级开发者还是高级开发者,甚至是公司产品设计和美工,都应该研读学习,特此推荐!由于文章内容较颇多,所以我分为几篇发布,方便大家阅读学习。如果对你有帮助,请评论或者顶一下代表支持,谢谢!

2015-03-03 09:03:42 18507 29

原创 【凯子哥带你夯实应用层】滚来滚去,滚来滚去...Scroller相关类使用大揭秘!!!

其实说到这里,有的同学可能比较迷惑,OverScroller和Scroller有什么区别呢?事实上,这两个类都属于Scrollers,Scroller出现的比较早,在API1就有了,OverScroller是在API9才添加上的,出现的比较晚,所以功能比较完善,Over的意思就是超出,即OverScroller提供了对超出滑动边界的情况的处理,这两个类80%的API是一致的,OverScroller比Scroller添加了一下几个方法 ☞ isOverScrolled() ☞ springB

2015-03-01 17:53:55 8916 15

原创 【凯子哥带你夯实应用层】都说“知乎”逼格高,我们来实现“知乎”回答详情页动画效果

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992     2014已经远去,2015年的目标很简单,就是继续熟悉Android的上层API,虽然偶尔会为了某个问题去研究下FrameWork的代码,但是对于我们这种新手来说,只有对上层的API用的熟练了,才能更好的往下研究原理。所以,今年的任务就是继续学习和研究Android的上层API的使用,顺便写一篇毕业

2015-02-27 16:33:20 9246 30

原创 【Android开发经验】关于“多线程断点续传下载”功能的一个简单实现和讲解

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992    上班第一天,在技术群里面和大家闲扯,无意中谈到了关于框架的使用,一个同学说为了用xUtils的断线续传下载功能,把整个库引入到了项目中,在google的官方建议中,是非常不建议这种做法的,集合框架虽然把很多功能集成起来,但是代码越多,出现问题的可能越大,而且无形之中增加了APK的大小,因此,得不偿失。

2015-02-25 19:46:50 7927 15

原创 一个Android开发者开博一周年的成长日记——送给不知如何下手的【初级开发者】和【在校生】

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992     今天一看日历,哟,2.12号,这不是我第一份工作入职的时间吗?不知不觉竟然已经工作了一年了,那根据“主席”的话说,应该算是中级开发者水平了!在这工作的一年里,我有过迷茫,有过动摇,但更多,则是坚持和努力,无论如何,我终于算是摸到了开发者的这一条道路的大门,剩下的就是更加坚定的走下去。平常和大家分享的

2015-02-12 10:52:56 7320 61

原创 Android开发相关的Blog推荐——跟随大神的脚步才能成长为大神

本篇文章主要纪录我在学习过程中,发现的非常给力的CSDNBlog和个人Blog,这些Blog都有一个共同的特点,即内容详实,讲解透彻,也算是给后来的初学者指一条路吧!只要你下定决心跟随强者的脚步,成为人们眼中的大神,只不过是时间问题! 下面排名不分先后

2015-02-11 11:53:33 38749 50

翻译 【Android开发经验】兼容不同的屏幕大小(推荐,最官方的适应屏幕大小的经验)

由于Android设备的碎片特性,关于屏幕适配的话题一直绵绵不休,这篇文章是Android开发者官网的屏幕适配教程,算是非常官方的解决方案,我们可以从这里学到很多。这节课教你如何通过以下几种方式支持多屏幕: ☞确保你的布局能自适应屏幕 ☞根据你的屏幕配置提供合适的UI布局 ☞确保你当前的布局适合当前的屏幕 ☞提供合适的位图(bitmap)

2015-02-10 09:56:09 14086 8

翻译 【Android开发经验】Bitmap高效显示系列——如何有效的加载大尺寸Bitmap

我们先看一下加载原图消耗的时间和内存,内存分配190ms,内存占用44.92M,因为我的Smartisan1内存充足,所以没问题,如果是比较老的机型,可能就直接崩掉了!下面我们再看使用小尺寸的运行结果,内存分配花费89ms,内存占用10.39M,相比之前内存少占用34.53M,所以说使用小尺寸的Bitmap时非常有必要的!

2015-02-05 09:45:19 5446 11

jianshu_code

详情请参考文件 http://blog.csdn.net/zhaokaiqiang1992/article/details/49951095 性能调优

2015-11-20

Android编程规范

Android编程规范 http://blog.csdn.net/zhaokaiqiang1992

2014-10-15

ListViewAnimation

ListViewAnimation效果实现 教程地址:http://blog.csdn.net/zhaokaiqiang1992

2014-07-29

Ant批量打包Android应用

Ant批量打包Android 应用教程地址http://blog.csdn.net/zhaokaiqiang1992/article/details/38086747

2014-07-24

Andbase实现侧滑栏效果.zip

Andbase实现侧滑栏效果.zip

2014-07-03

BadgerView

BadgerView的简单实用Demo

2014-06-30

电池监控Widght小部件

免费是我的习惯,好东西大家看. 免费是我的习惯,好东西大家看.

2014-06-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除