自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chin_Style的博客

外面天气晴朗,看书增长知识

  • 博客(42)
  • 资源 (7)
  • 收藏
  • 关注

原创 Android 2D画图类Path精炼详解

一、前期基础知识储备Android作为全球最大的操作系统,其界面UI历经这么多版本的改良,现在已经可以说不输于iOS系统了,今天本节内容就来分析UI界面中很关键的一部分——绘图。Android中实现绘图有两种机制:①利用Path来绘制2D界面图形;②利用OpenGL ES来绘制3D图形。(PS:利用OPENGL ES完全可以处理2D 但是要更复杂)我们都知道Canva提供了一系列的drawXXX方...

2018-04-30 21:02:15 510

原创 Android Studio 工程目录结构精炼详解

一、前期基础知识储备(1)Android Studio是一个为Android平台开发程序的集成开发环境。2013年5月16日在Google I/O上发布,可供开发者免费使用。2013年5月发布早期预览版本,版本号为0.1。2014年6月发布0.8版本,至此进入beta阶段。第一个稳定版本1.0于2014年12月8日发布。Android Studio基于JetBrainsIntelliJ IDEA,...

2018-04-30 13:33:47 2080

原创 Android色彩特效处理之色调、饱和度、亮度、ColorMatrix精炼详解

一、前期基础知识储备Bitmap(位图文件),扩展名可以是.bmp或者.dib。位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。想象一下你以前测红绿色盲的时候,王医生拿给你看的那张红红绿绿小动物数字交通工具的图,那就是一个位图图片,由一个个像素组成。    一个位图图像的一个像素点,用RGBA四个值来描述,具体...

2018-04-29 23:21:56 12761 4

原创 Android自定义相机精炼详解

一、前期基础知识储备在Android应用中想要使用相机拍照功能,通常有两种是实现方式:第一是调用系统中自带的相机应用或者是手机现有第三方相机应用进行拍照;第二种方式是为自己的应用自定义一个相机,实现具有自己应用特色的相机拍照功能。本节文章将详细分析两种调用相机拍照的实现方式。二、上代码,具体实现调用系统自带相机应用首先,我们来到官方文档中关于相机Camera API中查看(注:本篇文章的文档来自C...

2018-04-29 18:27:20 537

原创 在Android中使用OpenGL ES进行开发第(三)节:绘制图形

一、前期基础知识储备笔者计划写三篇文章来详细分析OpenGL ES基础的同时也是入门关键的三个点:①OpenGL ES是什么?与OpenGL的关系是什么?——概念部分②使用OpenGLES绘制2D/3D图形的第一步:定义图形;——运用部分③使用OpenGLES绘制出②步骤中定义好的图形:——运用部分,难点所在通过这三篇文章的分析,就像给万丈高楼垫定了基石,万丈高楼平地起,后...

2018-04-22 17:26:44 4624

原创 在Android中使用OpenGL ES进行开发第(二)节:定义图形

 一、前期基础知识储备笔者计划写三篇文章来详细分析OpenGL ES基础的同时也是入门关键的三个点:①OpenGL ES是什么?与OpenGL的关系是什么?——概念部分②使用OpenGLES绘制2D/3D图形的第一步:定义图形;——运用部分③使用OpenGL ES绘制出②步骤中定义好的图形:——运用部分,难点所在通过这三篇文章的分析,就像给万丈高楼垫定了基石,万丈高楼平地起...

2018-04-22 15:18:19 5445 1

原创 在Android中使用OpenGL ES进行开发第(一)节:概念先行

一、前期基础是知识储备笔者计划写三篇文章来详细分析OpenGL ES基础的同时也是入门关键的三个点:①OpenGL ES是什么?与OpenGL的关系是什么?——概念部分②使用OpenGL ES绘制2D/3D图形的第一步:定义图形;——运用部分③使用OpenGL ES绘制出②步骤中定义好的图形:——运用部分,难点所在通过这三篇文章的分析,就像给万丈高楼垫定了基石,万丈高楼平地...

2018-04-22 10:50:01 14046 8

原创 ViewPager+PagerSildingTapStrip联合使用方法精炼详解

一、前期基础知识储备前面一篇文章里《ViewPager和ViewPager+Fragment联合使用方法精炼详解》,笔者详细介绍了,ViewPager的使用方式,包括和Fragment的搭配使用,基本上做到了一个仿微信的切换效果,但是实现方式不够优雅,要分别为菜单栏和ViewPager设置监听事件,处理起来稍显麻烦,今天本节文章将分析另一个控件PagerSlidingTapStrip,该控件+Vi...

2018-04-20 17:52:40 462

原创 ViewPager和ViewPager+Fragment联合使用方法精炼详解

一、前期基础知识储备使用了ViewPager, PagerSlidingTabStrip, SwipeRefreshLayout模仿Douban客户端的下拉刷新以及滑动的效果。ViewPager—视图滑动切换工具——通过手势滑动可以完成View的切换,一般是用来做APP 的引导页或者实现图片轮播——意味着ViewPager中经常放的东西有两个:①图片,实现图片轮播器;②View视图,实...

2018-04-20 15:36:24 6368 3

原创 使用Glide+Recycler加载展示网络图片精炼详解

一、前期基础知识储备笔者在前面两篇文章《图片加载库Glide精炼详解》、《最强大的列表滚动控件RecyclerView精炼详解》分别介绍了图片加载库Glide和列表滚动控件的常用用法,那么今天本节文章,就开始把两者组合在一起,用Glide请求网络图片,请求完之后将图片用RecyclerView显示出来。先分析一下思路:单独使用Glide和RecyclerView相信读者都没有问题,那么两者联合使用...

2018-04-20 12:44:25 2679 1

原创 最强大的列表滚动控件RecyclerView精炼详解

一、前期基础知识储备现在的手机应用,很多都会采用列表滚动的方式来加载和显示内容,微信、QQ、淘宝等应用就是其中的典型代表,每个用户每天都在打开这些应用,每天都在接触这种列表这种展示方式,和列表上线滚动加载信息这种交互方式,所以掌握好列表滚动控件是开发者的硬性要求。谷歌官方推出的列表滚动控件主要有两种ListView和RecyclerView,这两种滚动控件都十分的强大。先来看一下ListV...

2018-04-19 21:35:21 1277 1

原创 图片加载库Glide精炼详解

一、前期基础知识储备现在Android的图片加载库十分的成熟,从最早的老牌图片加载框架UniversalImageLoader(2011年),到后来Google推出的Volley(2013年),再到后来的新兴军Picasso(2012年)和Glide(2013年),当然还有Facebook的Fresco(2015年)。每一个都非常稳定,功能也都十分强大。因为实现的功能较为相近,所以开发者学习其中一...

2018-04-19 11:28:57 1132

原创 Android性能优化精炼详解(二):内存泄漏优化

一、前期基础知识储备感兴趣的读者,可以参考笔者之前的文章《Android中内存泄漏超级精炼详解》,里面有对内存泄漏是什么、内存泄漏的常见原因、内存泄漏和内存溢出的联系与区别等相关内容的详解说明。Android内存泄漏优化是Android性能优化中很重要的一部分,今天本节文章作为Android性能优化的第二节,将和读者一起探究内存优化的一些方法。内存泄漏在开发中是一个需要重视的问题,但是由于内存泄漏...

2018-04-11 16:14:12 265

原创 Android性能优化精炼详解(一):布局优化

一、前期基础知识储备Android作为一种移动设备,不管是内存还是CPU的性能都受到了一定的限制,无法做到像PC设备那样具有超大的内存和高性能的CPU,这也意味着Android程序不可能无限制的使用内存和CPU资源,过多的使用内存会导致内存溢出,即OOM错误。而过多的使用CPU资源,比如大量的耗时任务,会导致手机变卡甚至无响应。因此,Andorid程序的性能优化问题就变得十分重要了。本节讲述And...

2018-04-11 11:32:28 257

原创 Java线程阻塞方法sleep()和wait()精炼详解

一、前期基础知识储备sleep()和wait()方法都是Java中造成线程阻塞的方法。感兴趣的读者可以参见笔者之前的文章《Java中什么方法导致线程阻塞》,里面详细讲述了为什么Java要造成线程阻塞和Java中造成线程阻塞的几种方法。线程的生命周期这是笔者在谷歌图片中找到的一张简单描述线程生命周期的图片,可以看到,一个线程正常的生命周期中会经历“创建”“就绪”“运行”“阻塞”“运行...

2018-04-10 22:53:58 41789 10

原创 Android广播接收器精炼详解—你所需要知道的广播

一、前期基础知识储备(1)什么是广播?广播在日常生活中就是用来通知一些消息,而Android系统为了方便一些消息的通知,也产生了广播的机制。Android的广播机制比较灵活,每一个应用程序都可以对自己感兴趣的广播进行注册,这样就只能收到自己想听的广播;这些广播可能来自于系统,也可能来自于其他应用程序。(来短信会产生广播、wifi变化也会产生广播...)广播可以实现不同app之间的通信,也可以实现同...

2018-04-10 20:36:58 672 1

原创 两种传输协议Http和Https协议精炼详解

一、前期基础知识储备(1)什么是Http协议?HypertextTransfer Protocol,超文本传输协议,用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息(2)什么是HttpS协议?...

2018-04-10 18:59:00 1505

原创 JVM和Dalvik虚拟机精炼详解

PS:涉及到了Android底层这里,多比比两句,普及一下:1)Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》中。他将外表像人的机器人取名为Android;2)Android标志是一个全身绿色的机器人,颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的...

2018-04-10 17:37:37 902

原创 Application和Activity上下文Context精炼详解

一、前期基础知识储备Context相信大家在日常开发中打交道的次数决不在少,很多场景下都需要运用到Context,不管是Framework提供给我们的四大组件,还是应用级别的Application,还是负责表现层的View相关类,甚至连我们很多时候创建的实体类都会需要持有一个Context的引用。那么Context到底是什么呢?本篇文章一起来看一下。(1)Context是什么?Co...

2018-04-10 16:10:32 5909 1

原创 DiskLruCache、LruCache和Valley三级缓存精炼详解

一、前期基础知识储备在前面的两篇文章《LruCache内存缓存图片技术精炼详解》、《DiskLruCache本地缓存图片技术精炼详解》笔者分别讲解了利用LruCache实现内存缓存和利用DiskLruCache本地缓存两种缓存技术,那么今天本节文章,就和大家一起实现一次三级缓存加载图片。(1)三级缓存的定义现在大部分的缓存框架,比如图片加载框架,网络请求框架等都使用三级缓存来提高效率,即内存-文件...

2018-04-09 21:53:49 301

原创 DiskLruCache本地缓存图片技术精炼详解

一、前期基础知识储备上一篇文章《LruCache内存缓存图片技术精炼详解》中,笔者分析了利用LruCache类实现图片的内存缓存,在应用程序中,如果已经联网加载好了图片,那么把图片保存到内存中,下一次加载就会十分迅速。但是,内存缓存技术,也有缺点,如果图片从内存里被移除了的话,那么下一次加载仍然是要从网络中获取,那么有没有什么办法可以做到一个“中间状态”,既不用每次从网络加载,又不用担心内存不足的...

2018-04-09 21:18:41 389

原创 LruCache内存缓存图片技术精炼详解

一、前期基础知识储备对于高效加载图片,参见笔者《Bitmap精炼详解第(一)课:Bitmap解析和加载》,在这篇文章里,笔者讲解了Bitmap的相关理论知识,并且实现了图片的一般加载和高效加载,那么,对于图片的加载还有其他方式吗?在开发中一般为了尽可能避免OOM都会按照如下两种做法:1)对于图片显示:根据需要显示图片控件的大小对图片进行压缩显示。2)如果图片数量非常多:则会使用LruCache类等...

2018-04-09 18:40:36 358

原创 进程间通信(IPC机制)精炼详解

一、前期基础知识储备IPC定义:IPC是intent-Process Communication的缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。IPC不是Android所独有的,任何一个操作系统都需要有相应的IPC机制,比如Windows上可以通过剪贴板、管道和邮槽等来进行进程间通信,而Linux上可以通过命名共享内容、信号量等来进行线程间通信。对于Android来说,...

2018-04-09 16:45:28 20509 4

原创 Android进程保活精炼详解

一、前期基础知识储备在之前的文章《如何保证Service在后台不被杀死?》中,笔者分析了为什么要保活Service、Service的几种保活方法和Service保活的意义。今天的这篇文章就更进一步,讲解进程保活的方法和意义。(1)什么是进程保活?拿我们的手机应用程序QQ来说,我们只要最近打开过QQ一次,那么QQ就可以一直在后台运行而不会自动关闭。这对于所有应用程序来说,都是梦寐以求的事,试想下,你...

2018-04-09 14:57:58 1991

原创 Android标题栏Toolba和ActionBar对比精炼详解

一、前期基础知识储备上官方文档,A standard toolbar for use within application content.A Toolbar is a generalization of action bars for use within application layouts. While an action bar is traditionally part of an A...

2018-04-08 16:46:38 1374 1

原创 网络通讯库OkHttp精炼详解

安卓发展的初期阶段,为测试安卓网络响应的功能,一群美国的安卓工程师跑到了网普遍不好的非洲,在那里弱网的情况下,试用应用程序。然后根据当地的实际情况,这群安卓工程师编写了出了这个非常有名的网络通讯库——OkHttp,专门用来解决弱网情景下的应用程序联网问题,取得了非常好的反响。一、前期基础知识储备为什么需要一个HTTP库?(1)HttpURLConnection非常弱起初Androi...

2018-04-07 21:51:43 316

原创 RxJava+Retrofit完成网络请求

一、前期基础知识储备在前面的四篇文章里,笔者已经分别讲解过RxJava的用法和Retrofit的用法,前者实现异步操作,后者实现网络请求,天底下还有被这么一对更合适的CP的吗?Retrofit1.0的时候,Jake Wharton就把Retrofit支持了RxJava语法,后来证明非常正确,Retrofit首席网络请求框架的地位,可以说是与RxJava的结合密不可分。———————————————...

2018-04-07 17:19:50 559

原创 网络通讯库Retrofit精炼详解第(二)课:Retrofit各种注解的使用

一、前期基础知识储备在上一篇文章《网络通讯库Retrofit精炼详解第(一)课:Retrofit基础理论和简单实现》中,笔者详细介绍了Retrofit的一些基础知识,并留下了有关于Retrofit注解类型的问题到第二篇文章,那么本文就来具体讲解一下Retrofit中各种注解类型的使用。以下是Retrofit的常用注解表:Path GET Query QueryMap Patch POST ...

2018-04-07 14:40:33 1012

原创 网络通讯库Retrofit精炼详解第(一)课:Retrofit基础理论和简单实现

一、前期基础知识储备我们先来列举一下常见的网络框架:Afinal——作者已经停止更新,不推荐使用。本身也是聚合性框架,不推荐;Android-async-http——基于Apache HttpClient,Android6.0就用不了了,不推荐;xUtils——作者已经停止更新,不推荐使用。本身也是聚合性框架,不推荐;OkHttp——相对成熟的解决方案,Android6.0...

2018-04-07 12:10:03 420 1

原创 异步操作库RxJava精炼详解第(二)课:RxJava常见操作符讲解

记住!:RxJava的操作符都是对被观察者的处理一、前期基础知识储备在笔者的前一篇文章《异步操作库RxJava精炼详解第(一)课:RxJava理论讲解和简单实现》中,分析了RxJava重要的基础理论(观察者模式及其四大元素;响应式编程及其事件调度;RxJava线程控制及其异步操作)并使用RxJava简单实现了一次线程切换的例子。下面本节内容将开始RxJava又一个重要的知识点的讲解—RxJava操...

2018-04-07 10:27:07 888

原创 异步操作库RxJava精炼详解第(一)课:RxJava理论讲解和简单实现

记住!:RxJava是一个异步操作库 — 适用于与后台服务器频繁交互的项目,执行异步任务频繁。“我们来谈一谈哪些库会让开发变得更加困难,或者说开始的时候更困难。但总的来说,这些都是好工具。RxJava,对于那些没有听说过的人来说,这个库的想法是,过去的代码从A 点开始,到B 点结束。但在Android 世界中,移动开发世界中,这一切就都不一样了。*你从A 点开始。然后人们点击某些东西,所以你必...

2018-04-06 23:12:43 1754

原创 网络通讯库Volley精炼详解第(二)课:使用Volley加载网络图片

一、前期基础知识储备笔者在之前的一节文章里《网络通讯库Volley精炼详解第(一)课:Volley介绍和简单使用》讲解了Volley的一些基本概况,并简单实现了一段网络文本的数据的请求,接下来本节内容,将实现Volley的另一项高效的用法—加载网络图片。这也是Volley作为知名库的一大特点所在。Volley是将AsyncHttpClient和Universal-Image-Loader的优点集成...

2018-04-05 13:53:28 212

原创 网络通讯库Volley精炼详解第(一)课:Volley介绍和简单使用

一、前期基础知识储备库最有价值的地方在于可逆:你将库添加到你的应用程序中,之后也可以将其删除(没有任何开销)。随时都能拿出来。不是所有的东西都可以这样,但如果它可以的话,请把它做成一个库,而不是和你的应用终生绑在一起。选择正确的库意味着你可以拥有一个已经成熟的更好的解决方案,而不是花费三个月来重新构建它。了解这些库是第一步。笔者会在第三方库做一个系列讲解,为著名的库,写写传记。本节开始谷歌推出的网...

2018-04-05 13:28:48 344

原创 自定义View实战第(一)课:仿QQ空间顶部条背景变化效果

一、前期基础知识储备《Android开发艺术探索》中对自定义View的讲解非常精彩,而笔者之前自定义View精炼详解的四节系列课程的讲解,意外的和书中的知识点对应上了,个人感到非常高兴。我们来回顾一下:《自定义View精炼详解第(一)课:基础理论部分和简单小实现》里面自定义View的示例是一个“背景可变化的按钮”,自定义View的方式是继承自现有控件。不需要自己支持wrap_content和pad...

2018-04-04 13:26:41 332

原创 自定义View精炼详解第(四)课:onMeasure()解析和简单示例

“measurespec封装了父类传递给子类的测量要求,每个measurespec代表宽度或者高度的要求以及大小,也就是说一个measurespec包含size和mode。”一、前期基础知识储备在系列之前《自定义View精炼详解第(一)课:基础理论部分和简单小实现》的这篇文章中,笔者给出了开发中最实用和最常见的自定义View方式——①继承现有控件和②继承现有布局实现,然后在笔者的《View...

2018-04-03 18:22:09 261

原创 Bitmap精炼详解第(二)节:Bitmap常见处理方式

一、前期基础知识储备笔者在第一课相关讲解中,对Bitmap的加载、高效加载和图片压缩进行了详细的解析,感兴趣的读者可以参考下《Bitmap精炼详解第(一)课:Bitmap解析和加载》。通过前面内容的学习,我们已经掌握了将Bitmap高效的加载出来,当然了实际开发中,产品经理是不可能仅仅满足于将图片加载出来,那样应用程序不够吸引人,在市面上的竞争力也没有那么强,所以我们在将Bitmap加载出来之...

2018-04-03 10:07:24 535

原创 Bitmap精炼详解第(一)节:Bitmap解析和加载

一、前期基础知识储备Android XML绘图技能第三讲:Bitmap位图分析,由于Bitmap的用法较Shape形状和Selector状态选择器而言要复杂的多,所以在此单独列为一个系列,集中讲解Bitmap开发中常见的知识点。(1)Bitmap定义:上官方文档(比较尴尬 文档里没有多少东西)Bitmappublic finalclass BitmapextendsObject...

2018-04-02 15:15:11 615

原创 Android XML绘图精炼详解第(二)节:Selector状态选择器和简单示例

一、前期基础知识储备在前一节内容《Android XML绘图精炼详解第(一)课:Shape解析和示例》中,我们学习了Android XML绘图的第一种技能——Shape形状,这节讲解,我们来学习第二种技能——Selector 即状态选择器,Selector的作用在于帮助开发者实现静态绘图中的事件反馈,通过给不同的事件设置不同的图像,从而在程序中根据用户输入,返回不同的结果。参见官方文档:...

2018-04-01 23:08:32 418

原创 Android XML绘图精炼详解第(一)节:Shape解析和示例

一、前期基础知识储备Android XML绘图—XML在Android系统中可不仅仅是Java中的一个布局文件、配置列表。在Android开发者的手上,它甚至可以变成一幅画,一张图。Android开发者给XML提供了四个强大的技能来帮助实现这一功能:①Shape;②Bitmap;③Layer;④Secletor本篇开始第一讲——Shape的使用技巧。PS:Shape是Android...

2018-04-01 21:26:37 911

原创 Android Scroll滑动效果精炼详解第(二)课:ViewDragHelper和简单实现QQ首页滑动效果

一、前期基础知识储备经过前面《Android Scrool滑动效果精炼详解第(一)课:基础理论和简单实现》的理论部分的讲解和实现的一个小示例,读者朋友应该对Android Scroll滑动效果有个基础的认知了,那么本节开始讲解实现滑动效果最重要的一种方法——使用ViewDragHelper类,通过ViewDragHelper,基本上可以实现各种不同的滑动、拖放需求,这个方法在《Android群英传...

2018-04-01 15:27:32 307

AVRCP蓝牙协议.pdf

初次接触蓝牙开发的同学,可以了解一下Avrcp的相关理论知识,包括各个版本Avrcp协议的变化,及其他相关的蓝牙协议。

2021-05-26

usaHigh.svg

usa 的SVG图片

2019-10-24

chinaHigh.svg

china 的SVG图片

2019-10-24

Android开发内功篇—Java开发实战经典

没错,就是你在知乎上看见大家都在推荐的Java实战方面的书。带目录。该书是一本综合讲解Java核心技术的书籍,在书中使用大量的代码及案例进行知识点的分析与运用,并且给出一些比较成熟的开发步骤,帮助读者更好地进行Java的开发。

2018-03-20

空空如也

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

TA关注的人

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