自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (8)
  • 收藏
  • 关注

原创 Android使用JPEG实现图片压缩上传

Android使用JPEG实现图片压缩上传1.介绍Android中常用压缩方法分为2种:一种是降采样率压缩,另外一种是质量压缩。第一种: BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBounds = true; BitmapFactory.decodeFile(path, o); o.inSample

2017-06-14 10:13:10 3002 1

原创 杀不死service------Java层实现

杀不死service——Java层实现介绍开始先来说下我们实现的方式:1.提高进程优先级2.java层双进程守护3.JobScheduler轮询4.native层双进程守护今天我们只写前三种方式,第四种native层双进程守护将在下一篇来讲解。我们先来看下进程的优先级 :前台进程- Activity已调用onResume()方法- Service服务已调用startForeground()-

2017-06-13 18:30:35 727

原创 手写数据结构----------HashMap

手写数据结构———-HashMap百度百科解释基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代

2017-06-13 10:18:58 650

原创 android插件化开发---换肤

android插件化开发—换肤在自己手写换肤功能之前需要了解关于view的创建过程,如果不了解的朋友可以看下我另外一篇博客:android中布局和View创建从上一篇文章中我们知道在创建view之前,会先调用LayoutInflater中的mFactory2,mFactory,mPrivateFactory的onCreateView,所以我们只要设置Factory,就可以对view创建进行拦截,

2017-06-12 18:52:59 441

原创 android 手写收集崩溃信息上传

android 手写收集崩溃信息上传我们要收集用户使用app时,异常崩溃的信息,网上有很多第三方的,今天我们就自己手动的写收集崩溃信息的功能。我们要上传的有那些信息呢? 错误信息,app版本信息, 手机信息我们怎么能监听到app崩溃,和在崩溃时保存错误信息呢? 这里我们使用的是Thread.UncaughtExceptionHandler接口,下面我们来一起看下代码: public cla

2017-06-12 01:38:58 283

原创 android热修复--手写热修复

android热修复–手写热修复之前我们分析了阿里的热修复框架AndFix的使用和原理,如果没看过的小伙伴可以先去看下,使用起来还是很简单的,但是有个缺陷,就是针对新出的android系统不兼容,因为AndFixNatice层对不同的系统做不同的处理方式,如果版本更新,但是阿里工程师还没来得及添加针对新系统的处理,那么就有可能出问题。我们今天就手写一个针对java层的热修复功能。先来了解一下Andr

2017-06-11 22:41:40 1174

原创 手写EventBus框架

手写EventBus框架EventBus相信大家都用过,EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。今天我们就来手写EventBus,让我们更了解EventBus原理。需要了解的知识点: 1.

2017-06-02 11:27:52 375

原创 仿QQ语言变声功能

仿QQ语言变声功能这次写的是QQ语言变声功能,这个功能想必大家都使用过,那么这个功能是怎么实现的呢? 在开发中一边触及和语音,视频,算法等等都和c/c++相关,我们这里也是使用的NDK,链接第三方动态库,生成我们自己的库文件。先来讲讲第三方的动态库,我们这里使用的FMOD音频引擎提供给android的api和动态库。我们可以到官网下载: FMOD,因为下载需要注册,但是我天朝的。。。,需要vnp

2017-06-01 14:50:00 5186 2

原创 Android广告轮播

Android广告轮播广告轮播功能在很多项目中多用得到,最近看了一位大神的博客,仿照他的文章,自己来写一个广告轮播功能,写的过程中学到了很多东西,谢谢。首先来看下核心的类BannerViewPager:public class BannerViewPager extends ViewPager { private String TAG="BannerViewPager"; Handle

2017-05-24 15:15:05 464

原创 Android6.0运行时权限处理架构搭建

Android6.0运行时权限处理架构搭建介绍对于6.0以下的权限及在安装的时候,根据权限声明产生一个权限列表,用户只有在同意之后才能完成app的安装,造成了我们想要使用某个app,就要默默忍受其一些不必要的权限(比如是个app都要访问通讯录、短信等)。而在6.0以后,我们可以直接安装,当app需要我们授予不恰当的权限的时候,我们可以予以拒绝(比如:单机的象棋对战,请求访问任何权限,我都是不同意的)

2017-05-23 09:57:50 271

原创 注解(Annotation)自定义注解(四)--编译期注解解析讲解和手写ButterKnife

注解(Annotation)自定义注解(四)–编译期注解解析讲解和手写ButterKnife前言前面两篇讲解了运行期注解的使用和xutils源码的解析,以及手动打造自己的IOC框架。但是运行期注解由于性能问题被一些人所诟病,所以这里我们讲下编译器注解的使用和实战。介绍编译器注解的核心原理依赖APT(Annotation Processing Tolls)实现,例如,我们常用的ButterKnife,

2017-05-22 18:36:31 953

原创 仿QQ侧滑效果

仿QQ侧滑效果我们经常使用QQ,感觉QQ的侧滑效果还是不错的,虽然网上有侧滑的包,或者V4包中带的DrawerLayout,但是使用起来不太满意,所以我们就会自己手写侧滑效果,今天我们就来写一下仿QQ侧滑效果。先上图:写侧滑功能的思路有很多,就我本人而言,就写个两种:1.ViewGroup + ViewDragHelper + onTouch事件处理2.HorizontalScrollView +

2017-05-21 22:29:54 444

原创 android热修复--阿里热修复使用和源码分析

android热修复–阿里热修复使用和源码分析AndFix全称Android hot-fix,是alibaba的Android热修复框架,支持Android 2.3到7.0的版本,支持arm与X86系统架构,支持Dalvik和ART Runtime。原理AndFix的原理就是方法的替换,把有bug的方法替换成补丁文件中的方法。使用1.添加依赖和混肴maven:<dependency> <gr

2017-05-19 15:55:45 472

原创 android中布局和View创建的源码分析---setContentView

android中布局和View创建的源码分析因为我们使用的是拦截view创建的过程来实现插件换肤的功能,所以首先要熟悉android中创建视图的过程,下面让我们一起来分析下源码,这里我们从两个方面来分析。一.设置布局分析1.继承至Activity时,设置布局的情况setContentView()的源码public void setContentView(@LayoutRes int layoutRe

2017-05-19 12:56:00 322

原创 注解(Annotation)自定义注解(三)--自己动手写注解框架(仿xutils)

前面两篇文章讲解了注解的基础知识和运行时注解的解析方法。下面我们用学到的知识来手动写一个属于自己的注解框架。在写自己的注解框架前,让我们先来看下一些好的框架,相信大家对xutils应该不会太陌生。xutils主要包括网络,数据库,IOC注入,网络图片使用,那么我们这里主要看看xutils3.0的IOC注解:https://github.com/wyouflf/xUtils3

2017-04-21 15:39:04 383

转载 注解(Annotation)自定义注解(二)--运行时注解解析

大幅答复

2017-04-18 17:47:22 361

转载 注解(Annotation)自定义注解(一)

要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解:  元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:    1.@Target,    2.@R

2017-04-18 17:34:11 194

原创 你喜欢的搞笑内容都在这里-----笑口常开

FunN(因为 数据来源,接口,app都是本人独立完成,所以可能更新会很慢,请见谅)描述:这是一款基于MVP模式开发的,目的是给用户带来快乐,其中有 段子手, 搞笑, 清纯妹子, 性感美女, 动态图, 邪恶图片 几个模块,包括了文字笑话,搞笑图片,美女图片,搞笑动态图.功能只是提供了文字小

2017-04-18 17:21:01 569

原创 android源码分析-------LinkedHashMap,HashMap

这篇文章是LurCache源码分析的后续,如果想看LurCache源码分析,请转上一篇:《 避免OOM系列之(二)-------LruCache使用以及源码详细解析》。我们先来看下继承关系:我们看到LinkedHashMap 继承HashMap  ,HashMap继承AbstractMap,如果你查看AbstractMap源码会发现,Ab

2016-08-14 21:33:47 1113 1

原创 LruCache使用以及源码详细解析

开始准备先讲引用的,但是考虑到网上有很多优秀的框架,提供给开发者使用,关于缓存基本上全是用的LruCache,所有先讲解下Lrucache的使用和源码分析。  LRU是Least Recently Used 近期最少使用算法。其实LruCache的作用就是对缓存的元素进行排序,当超过设定的内存值时就会将使用最少,使用最早元素先回收。LruCache的使用:

2016-08-14 20:26:56 550

深入理解Android 卷 II - 邓凡平

深入理解Android 卷 II 带标签。。。。。。。。。。。。。。。。。。。。。。。

2018-06-13

仿QQ侧滑效果

仿QQ侧滑效果

2017-05-21

Sliding-drawerlayout

Sliding-drawerlayout

2016-08-19

viewhelper---实现qq侧滑特效

viewhelper---实现qq侧滑特效

2016-08-17

侧滑2-drawerlayout.

侧滑2-drawerlayout.

2016-08-16

滑动相册特效

滑动相册特效

2016-08-15

drawerlayout实现侧滑

drawerlayout实现侧滑

2016-08-15

SlidingMeunDemo

实现侧滑的四种方式一 Slidingmeun

2016-01-29

空空如也

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

TA关注的人

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