自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 Launcher3 壁纸流程分析

Launcher3 壁纸分析Launcher3 壁纸分析WallpaperPickerActivity结构1 父类WallpaperCropActivity2 布局文件wallpaper_pickerxml初始化流程1 加载壁纸列表11 系统壁纸12 图库壁纸13 动态壁纸2 加载图库壁纸按键3 Actionbar的初始化和响应4 点

2017-08-03 15:56:33 1409

原创 Mk文件语法规则

Makefile 语法分析 第一部分VERSION = 2 给变量VERSION赋值 PATCHLEVEL = 6 给变量PATCHLEVEL赋值 SUBLEVEL = 22 给变量SUBLEVEL赋值 EXTRAVERSION = .6 给变量EXTRAVERSION赋值 NAME = Holy Dancing Manatees, Batman! 给变量NAME赋值

2017-08-01 09:43:25 7042

原创 AOSP mk文件总结

1 Build LayersBuild Layers描述的是产品的硬件配置情况,据此make时选择不同的配置和模块。按照从上到下的顺序,Build Layer分成4层。Layer sample NoteArch arm, x86 处理器的种类Board - 板子类型的代号Device - device配置的类型代号Product -

2017-07-31 17:00:41 2372

原创 Win10 配置Python开发环境

Win10 Python开发环境配置本文介绍在win10下 搭建Pycharm+Anaconda快速搭建Python开发环境下载PhcharmPycharm 可以在jetbrain官网找到 下载地址http://www.jetbrains.com/pycharm/选择Community版本即可下载Anaconda Python发行版关于anaconda的优点,此处不再赘述,它集成了很多常

2017-07-30 15:19:11 2471

原创 解决OKHttp3 报OKHTTP javax.net.ssl.SSLHandshakeException错误

一、概述其实这篇文章理论上不限于okhttp去访问自签名的网站,不过接上篇博文了,就叫这个了。首先要了解的事,okhttp默认情况下是支持https协议的网站的,比如https://www.baidu.com,https://github.com/hongyangAndroid/okhttp-utils等,你可以直接通过okhttp请求试试。不过要注意的是,支持的https的网站基本都是C

2017-07-28 17:57:36 32207 2

原创 ubantu 16.04 编译报错 clang: error: linker command failed with exit code

最近在ubantu16.04的服务器上编译5.1源码出错 尝试了几种解决办法 首先在根目录 中找到 /art/build/Android.common_build.mk,[java] view plain copy"font-size:18px;"># Host.  ART_HOST_CLANG

2017-07-11 09:30:33 3355

原创 安卓官方编码规范

Java 语言规则Android 遵循标准 Java 编码规范以及下文所述的其他规则。请勿忽略异常开发者可能会倾向于编写完全忽略异常的代码,例如:void setServerPort(String value) { try { serverPort = Integer.parseInt(value); } catch (NumberFor

2017-07-10 09:41:33 1269

原创 5.1 Launcher3 修改总结

最近比较忙 有段时间没写博客了   趁着有空 把最近修改launcher的心得总结一下一、 修改和替换特定应用图标   1   allApps界面    allApps界面就是所谓的二级菜单,抽屉。   Launcher3 生成二级菜单的图标分为初次加载和初次加载之后。   初次加载时 修改 IconCache.java 中的 updateCacheAndGetCont

2017-04-26 20:26:12 2488

转载 RxJava解决发射事件速度和消费事件速度不一致导致rx.exceptions.MissingBackpressureException

BackpressureRx 中的数据流是从一个地方发射到另外一个地方。每个地方处理数据的速度是不一样的。如果生产者发射数据的速度比消费者处理的快会出现什么情况?在同步操作中,这不是个问题,例如:// ProduceObservable producer = Observable.create(o -> {    o.onNext(1);    o.onNext(2);  

2016-12-16 19:04:19 4941 1

转载 浅谈DecorView与ViewRootImpl

前言对于Android开发者来说,View无疑是开发中经常接触的,包括它的事件分发机制、测量、布局、绘制流程等,如果要自定义一个View,那么应该对以上流程有所了解、研究。本系列文章将会为大家带来View的工作流程详细解析。在深入接触View的测量、布局、绘制这三个流程之前,我们从Activity入手,看看从Activity创建后到View的正式工作之前,所要经历的步骤。以下源码均取自

2016-12-13 12:04:40 503

转载 Android Data Binding(结合RecyclerView动态绑定数据)

本教程是跟着 Data Binding Guide 学习过程中得出的一些实践经验,同时修改了官方教程的一些错误,每一个知识点都有对应的源码,争取做到实践与理论相结合。Data Binding 解决了 Android UI 编程中的一个痛点,官方原生支持 MVVM 模型可以让我们在不改变既有代码框架的前提下,非常容易地使用这些新特性。其实在此之前,已经有些第三方的框架(RoboAndroid

2016-12-11 14:10:15 5956

转载 Android数据绑定框架DataBinding

去年谷歌 I/O大会上介绍了一个非常厉害的新框架DataBinding, 数据绑定框架给我们带来了很大的方便,以前我们可能需要在每个Activity里写很多的findViewById,不仅麻烦,还增加了代码的耦合性,如果我们使用DataBinding,就可以抛弃那么多的findViewById,省时省力。说到这里,其实网上也有很多快速的注解框架,但是注解框架与DataBinding想比还是不好用,

2016-12-11 13:16:20 729

原创 利用Transition制作炫酷的切换动画

前言         使用Transition动画框架,可以帮你做到:    1不同Activity切换的时候,根据每个activity对应的layout内容的不同做整体的场景变换的动画。     2 不同activity切换的时候,不同activity对应的layout有相同的元素,比如activity1中有一个button,activity2有一个相同的butt

2016-12-09 23:40:21 2965

转载 自定义View

1.自定义View首先我们要明白,为什么要自定义View?主要是Android系统内置的View无法实现我们的需求,我们需要针对我们的业务需求定制我们想要的View。自定义View我们大部分时候只需重写两个函数:onMeasure()、onDraw()。onMeasure负责对当前View的尺寸进行测量,onDraw负责把当前这个View绘制出来。当然了,你还得写至少写2个构造函数:

2016-12-08 22:59:04 438

转载 OkHttp使用总结

1. 历史上Http请求库优缺点在讲述OkHttp之前, 我们看下没有OkHttp的时代, 我们是如何完成http请求的.在没有OkHttp的日子, 我们使用HttpURLConnection或者HttpClient. 那么这两者都有什么优缺点呢? 为什么不在继续使用下去呢?HttpClient是Apache基金会的一个开源网络库, 功能十分强大, API数量众多, 但是正是由

2016-12-08 22:46:38 1488

转载 初识LeakCanary

LeakCanaryAndroid 和 Java 内存泄露检测。“A small leak will sink a great ship.” - Benjamin Franklin千里之堤, 毁于蚁穴。 -- 《韩非子·喻老》demo一个非常简单的 LeakCanary demo: https://github.com

2016-12-06 22:39:07 499

转载 关于内存泄露的总结

集合类泄漏集合类如果仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。如果这个集合类是全局性的变量 (比如类中的静态属性,全局性的 map 等即有静态引用或 final 一直指向它),那么没有相应的删除机制,很可能导致集合所占用的内存只增不减。比如上面的典型例子就是其中一种情况,当然实际上我们在项目中肯定不会写这么 2B 的代码,但稍不注意还是很容易出现这种情况,比如我们都喜欢通

2016-12-06 22:30:58 2552

转载 理解23种设计模式

面向对象的六大原则首先,我们为什么要学习设计模式。主要是这些模式是前人总结的经验,使用这些模式能让我们的程序更健壮、更稳定、容易扩展等等优点。在编写面向对象程序时,我们需要遵循以下6个原则,能让我们的程序维护起来更轻松~(当然还有其它好处)。1 单一职责原则 单一原则很简单,就是将一组相关性很高的函数、数据封装到一个类中。换句话说,一个类应该有职责单一。2 开闭原则

2016-12-04 23:29:32 860

转载 深入Android MediaPlayer的使用方法详解

1)如何获得MediaPlayer实例:可以使用直接new的方式:MediaPlayer mp = new MediaPlayer();也可以使用create的方式,如:MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了2) 如何设置要播放的文件:MediaPlaye

2016-11-30 12:07:50 12903

转载 view、viewgroup 事件响应拦截处理机制

一、View,ViewGroup(下面红名的组件必须熟练) 作过Android 应用开发的朋友都知道,Android的UI界面都是由View和ViewGroup及其派生类组合而成的。其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的。AndroidUI界面的一般结构可参见下面的示意图:可见,作为容器的ViewGrou

2016-11-29 10:50:22 771

转载 Rxjava Subject分析

Subject = Observable + Observer看看官方的描述:Subject可以看成是一个桥梁或者代理,在某些ReactiveX实现中(如RxJava),它同时充当了Observer和Observable的角色。因为它是一个Observer,它可以订阅一个或多个Observable;又因为它是一个Observable,它可以转发它收到(Observe)的数据,也

2016-11-27 23:20:24 594

转载 打造属于自己的RxBus

RxBus通过RxJava实现Rxbus。相信大家已经非常熟悉EventBus了。最近正在学习Rxjava,如果在项目中已经使用了Rxjava,使用RxBus来代替EventBus应该是不错的选择。RxJava最核心的两个东西是Observables(被观察者,事件源)和Subscribers(观察者)。Observables发出一系列事件,Subscribers处理这些事件。

2016-11-27 23:07:30 723

转载 RxBus的实现及简单使用

RxJava目前已经很火了,如果你尚未了解请看这里。对于RxJava这里不多做介绍。RxBus并不是一个库,而是一种模式。相信大多数开发者都使用过EventBus,作为事件总线通信库,如果你的项目已经加入RxJava和EventBus,不妨用RxBus代替EventBus,以减少库的依赖。一、添加RxJava和RxAndroid依赖 //RxJava and RxAndroi

2016-11-27 22:56:42 875

转载 EventBus源码解析

1、概述一般使用EventBus的组件类,类似下面这种方式:[java] view plain copypublic class SampleComponent extends Fragment  {        @Override      public void onCreate(Bundle savedInst

2016-11-27 00:05:10 373

转载 EventBus实战

1、概述最近大家面试说经常被问到EventBus,github上果断down了一份,地址:https://github.com/greenrobot/EventBus,的确是个不错的框架,主要用于事件的发布和订阅。EventBus定义:是一个发布 / 订阅的事件总线。这么说应该包含4个成分:发布者,订阅者,事件,总线。那么这四者的关系是什么呢?很明显:订阅者

2016-11-27 00:00:58 479

转载 TBS服务

用Android自带的WebView组件,做过一些较复杂应用的人应该都会发现,这个自带的组件很多时候真是让人无力吐嘈,主要理由有二:Android中的WebView组件,内存泄漏的问题一直没有非常有效的解决方案,让程序猿们痛不欲生。Android中的WebView组件,在4.4以前的版本是WebKit的内核,4.4以后才换成chromium的内核,同时鉴于Google版本帝的风格,因此也导

2016-11-26 23:14:44 2390

转载 FragmentPagerAdapter与FragmentStatePagerAdapter区别

在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChange

2016-11-26 23:05:15 299

转载 视频框架Vitamio学习

概述        开发公司一个乐视TV项目时,本来有个播放视频广告的功能,到最后不了了之。虽然没有在项目中做要求,但是这个点子还是激起了我研究多媒体的好奇心。刚好后面遇到一款比较喜欢的视频APP魔力盒,上面视频播放的体验及整个产品的设计都是我喜欢的类型,于是反编译了一下,发现其中用到了一个视频框架Vitamio,(还有一个很流畅的下拉刷新框架hardmark), 然后,一番百度googl

2016-11-26 17:49:47 825

转载 Android视频框架 Vitamio 打造自己的万能播放器

Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染。Vitamio 功能强大,能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。

2016-11-26 17:45:58 876

转载 常用开源类库總結

一、兼容类库ActionBarSherlock  : Action Bar是Android 3.0后才开始支持的,ActionBarSherlock是让Action Bar功能支持2.X后的所有平台,而且他会自动的判断是调用原生Action Bar还是使用扩展ActionBar。在我的小熊词典里有用到这个库,而且很多非常知名的App也在使用这个库。 GitHub   Official   

2016-11-26 17:43:50 1307

转载 图片加载库Glide介绍

在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech。这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。它的成功让我非常感兴趣。我花了一整晚的时间把玩,决定分享一些自己的经验。在开始之前我想说,Glide和Picasso有90%的相似度,准确的说,就是Picasso的克隆版本。但是

2016-11-26 17:37:39 400

转载 初试Glide

在图片加载库烂大街的今天,选择一个适合自己使用的图片加载库已经成为了每一个Android开发者的必经之路。现在市面上知名的图片加载库有UIL,Picasso,Volley ImageLoader,Fresco以及我们今天的主角Glide。它们各有千秋,不能评定谁一定比谁好,只能说哪一个更适合你。我的理解下面我来谈一下个人对这些图片加载库的理解,如有错误,还望指教。Universal

2016-11-26 00:57:36 386

转载 如何更高效的使用MVP以及官方MVP架构解析

转载请标明出处: http://blog.csdn.net/dantestones/article/details/51445208Android mvp 架构的自述中我简单的介绍了mvp,以及怎么写mvp。我自己也将mvp运用到了项目中,其实mvp并没有固定的写法,正确的去理解架构的思想,都可以有自己独特的mvp写法。git上也有很多例子,比如google的android-arc

2016-11-22 14:49:27 805

转载 Android mvp 架构的自述

最近发现再也无法忍受越来越臃肿的Activity代码,越来越来混乱的Activity层的代码,投入到了MVP的怀抱。目前来看MVP的架构还是很适合Android的,在这里记录一下一点心得,希望都给想用MVP的人一点帮助。老的MVC架构刚开始接触Android的时候会觉得Android的整个代码架构就是一个MVC。M : 业务层和模型层,相当与javabean和我们的业务请求

2016-11-22 14:48:37 439

原创 Dagger2总结

简单总结一下  方便日后查询     Dagger2是为了解决对象依赖关系而生的依赖注入框架 目的是为了降低代码耦合   它会在编译后自动为被inject的类添加所需要new出对应对象的代码        用大白话说     就比如 @Inject User user; @Override protected void onCreate(Bundle

2016-11-20 21:25:21 400

转载 理解@Scope

关于Dagger2使用的基础如果你还不了解,可以参考我的上一篇文章解锁Dagger2使用姿势(一),这有助于你理解本篇文章。OK,我们在上篇文章介绍另外Dagger2使用过程中四个基本的注解,分别是@Module、@Provides、@Inject以及@Component。今天我想来说说Dagger2中另外一个注解,那就是@Scope注解。看网上的资料,大家基本上都知道@Sco

2016-11-20 18:41:01 664

转载 Google官方MVP+Dagger2架构详解

博客原地址:http://www.jianshu.com/p/01d3c014b0b11 前言前段时间分享了一篇文章:google官方架构MVP解析与实战 ,针对这是对google官方示例架构的一个分支todo-mvp/ 的项目解析与实际运用,google官方示例架构项目googlesamples/android-architecture 目前还有两个分支在开发中g

2016-11-19 20:03:59 1231

转载 深入理解Android之Gradle

Gradle是当前非常“劲爆”得构建工具。本篇文章就是专为讲解Gradle而来。介绍Gradle之前,先说点题外话。一、题外话说实话,我在大法工作的时候,就见过Gradle。但是当时我一直不知道这是什么东西。而且大法工具组的工程师还将其和Android Studio大法版一起推送,偶一看就更没兴趣了。为什么那个时候如此不待见Gradle呢?因为我此前一直是做ROM开发。在这个层面上

2016-11-08 15:46:07 982

转载 用Dagger2在Android中实现依赖注入

用Dagger2在Android中实现依赖注入依赖注入这个模式(模式已经用烂了,这里再烂一次)是用来给应用的各部分解耦的。使应用开发更加可扩展,更容易维护。通过本文你会学到如何使用Dagger2来处理依赖。简介如果以对象需要另外的一个对象才能完成一个完整功能的话,那么这里就存在一个依赖。比如,悟空要用金箍棒才能三打白骨精,要筋斗云才能十万八千里。悟空有对金箍棒和筋斗云的依赖。你可以在悟空对象

2016-10-28 23:05:59 380

转载 Dagger2 使用初步

Dagger2 是一个Android依赖注入框架,由谷歌开发,最早的版本Dagger1 由Square公司开发。依赖注入框架主要用于模块间解耦,提高代码的健壮性和可维护性。Dagger 这个库的取名不仅仅来自它的本意“匕首”,同时也暗示了它的原理。Jake Wharton 在对 Dagger 的介绍中指出,Dagger 即 DAG-er,这里的 DAG 即数据结构中的 DAG——有向无环图(Dir

2016-10-28 22:58:52 445

空空如也

空空如也

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

TA关注的人

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