自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(367)
  • 资源 (5)
  • 收藏
  • 关注

转载 android开发开源宝贝

2016年11月11日更新http://www.apkbus.com/forum-417-1.htmlhttp://p.codekk.com/detail/Android/hejunlin2013/LivePlaybackwww.codekk.comhttps://github.com/Trinea/android-open-project

2016-11-15 23:13:53 3755

原创 自定义View一:绘制-Canvas

1、概念画布,通过画笔绘制几何图形、文本、路径和位图等。2、常用API常用API分为绘制、变换、状态保存和恢复2.1 绘制颜色1. canvas.drawColor(Color.GREEN); 2.2 绘制集合图形//绘制点 float[] pts = {200, 300, 200, 400, 200, 500}; canvas.drawPoint...

2019-11-21 19:17:53 258 1

原创 自定义View一:绘制-Paint

1、Paint类自定义控件具有很强的灵活性,可以根据你的想法画出各种各样的图案,在Android中如果是自定义控件的话,Paint这个类用的还是较多的,先来看一下这个类的注释:/** * The Paint class holds the style and color information about how to draw * geometries, text and bitm...

2019-11-21 19:06:35 521

转载 OkHttp源码分析

本文配套视频:okhttp内核分析配套视频一okhttp内核分析配套视频二okhttp内核分析配套视频三源码分析相关面试题Volley源码分析注解框架实现原理基本使用从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的.建议大家下载 OkHttp 源码之后,跟着本文,过一遍源码。官方博客栗子:http://square.github.io/okhttp/#examplesOkHt...

2018-06-13 14:24:56 378

转载 OkHttp基本使用

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

2018-06-13 14:23:59 327

转载 Android架构组件(三)——ViewModel

Android架构组件(三)——ViewModel上一篇文章讲到了Android架构组件之LiveData(Android架构组件(二)——LiveData),现在我们再来看看另一个成员ViewModel。ViewModel是什么? ViewModel,从字面上理解的话,我们也能想到它肯定是跟视图(View)以及数据(Model)相关的。正像它字面意思一样,它是负责准备和管理和UI组件(Fragm...

2018-06-01 16:00:07 348

转载 Android架构组件(二)——LiveData

Android架构组件(二)——LiveData上一篇文章讲到了Android架构组件之一Lifecycle组件(Android 架构组件(一)——Lifecycle-Aware Components),现在我们再来看看另一个成员LiveData。定义 简单地说,LiveData是一个数据持有类。它具有以下特点:数据可以被观察者订阅;能够感知组件(Fragment、Activity、Service...

2018-06-01 15:59:12 360

转载 Android 架构组件(一)——Lifecycle

Android 架构组件(一)——Lifecycle-Aware Components有一天“谷歌开发者”官微推送了《正式发布 Android 架构组件 1.0 稳定版 | 附带中文介绍视频》,发现这种架构足够秒杀MVP、MVVM,虽然之前的Google I/O大会中也介绍过,但是这次推出是稳定版,而且是可以投入到生产中去。于是就顺着这篇去官网看了使用文档——《Guide to App Archi...

2018-06-01 15:58:21 420

转载 Gson介绍

Gson介绍:GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。特点: a、快速、高效      b、代码量少、简洁      c、面向对象        d、数据传递和解析方便 Gson的pom依赖: <dependency> ...

2018-03-21 17:45:38 62442 6

转载 一小时搞明白注解处理器(Annotation Processor Tool)

Java中的注解是个很神奇的东西,还不了解的可以看下一小时搞明白自定义注解(Annotation)。现在很多Android的库都用使用注解实现的,比如ButterKnife,我们不防也来学习一下,学完注解处理器,我们尝试写一个简单的类似ButterKnife的东西来绑定控件。什么是注解处理器?        注解处理器是(Annotation Processor)是ja

2016-12-21 17:50:14 1446

转载 一小时搞明白自定义注解(Annotation)

什么是注解        Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。        Annotation(注解)是JDK5.0及以后版本引入的。它可以用

2016-12-21 17:48:37 614

转载 Android:dagger2让你爱不释手-终结篇

前言如果您对dagger2的概念,整个依赖注入框架还不清楚,可以先了解下我的前2篇文章:Android:dagger2让你爱不释手-基础依赖注入框架篇Android:dagger2让你爱不释手-重点概念讲解、融合篇这2篇文章也收到好多网友的好评和提问,谢谢大家的支持。我大概总结了下提的问题:dagger2到底能带来哪些好处?dagger2怎么使用?因此我将结合这2点来进

2016-12-19 20:43:04 501

转载 Android:dagger2让你爱不释手-重点概念讲解、融合篇

前言Android:dagger2让你爱不释手-基础依赖注入框架篇这篇讲解了Inject,Component,Module,Provides是如何构成dagger2整个依赖注入框架的component_module_inject.png因为dagger2的整个依赖注入框架已经构建完成,所以dagger2中剩下的Qualifier(限定符)、Singleton(单例)、Sco

2016-12-19 20:42:27 420

转载 Android:dagger2让你爱不释手-基础依赖注入框架篇

前言dagger2的大名我想大家都已经很熟了,它是解决Android或java中依赖注入的一个类库(DI类库)。当我看到一些开源的项目在使用dagger2时,我也有种匆匆欲动的感觉,因此就立马想一探它的究竟,到底能给我带来怎样的好处。在学习使用dagger2的过程中,我遇到了以下的一些困惑:dagger2中的Inject,Component,Module,Provides等等都是什么东

2016-12-19 20:41:48 460

转载 MVP+RxJava+Retrofit2+Dagger2

1、深入浅出RxJava(一:基础篇) - 大头鬼Bruce - 博客频道 - CSDN.NET2、RxJava教程3、RxJava的Demo4、Rxjava-Android资料汇总(里面有一些推荐的相关跳转网址,很有用的)5、给 Android 开发者的 RxJava 详解(这个呢,是很多人推荐的,我是第一次看,没懂,看了别的后,回看,懂了一部分,再次回看,基本明

2016-11-30 15:20:10 1809 1

转载 ButterKnife框架使用详解

一、     什么是ButterKnifeButterKnife是一个支持View注入的框架。以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反

2016-11-30 15:17:50 403

转载 MVP+Dagger2+Retrofit实现更清晰的架构

个架构已经有不少文章介绍了,今天打算自己实践下。MVP概念不多说了 相关介绍已经很多了Dagger2:依赖注入框架,用来解决依赖 除了基本依赖 mvp的V–>P–>M的之间依赖也轻松解决 方便不少Retrofit:用来解决M的RestApi数据获取, 天然支持Rxjava 不过这里我没用到Rxjava 其自带的Callback已经足够用了估计这个架构的难点在于Dag

2016-11-24 17:45:53 381

转载 深入理解Java:注解(Annotation)--注解处理器

如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement):  Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Anno

2016-11-24 16:04:55 287

转载 深入理解Java:注解(Annotation)自定义注解入门

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

2016-11-24 16:04:21 299

转载 深入理解Java:注解(Annotation)基本概念

什么是注解(Annotation):  Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。  Annotation(注解)是JDK5.0及以后版本引入的。它可以用于

2016-11-24 16:03:34 297

转载 一种在android中实现MVP模式的新思路

今天我想分享我自己在Android上实现MVP模式的方法。如果你对MVP模式还不熟悉或者你不清楚为什么要在Android应用中使用MVP模式,我建议你先阅读以下这篇维基百科的文章和这篇博客。使用Activity和Fragment作为视图层(View)真的合适么?目前很多使用了MVP模式的android 项目,基本上都是将activity和fragment作为视图层来进行处理的.而p

2016-11-15 18:41:25 961

转载 Android MVP框架MVPro的使用和源码分析

最近看了两篇关于Android实现MVP的文章一种在android中实现MVP模式的新思路和用MVP架构开发Android应用。 两篇文章的思路都是一样的,即把Activity、Fragment作为Presenter,这种方式不同于现在主流的MVP方式,不过它很好的解决了Activity生命周期带来的问题,而且我认为它让MVP的实现更加轻松了。那么问题来了,这么好的思路,我们怎么可以不

2016-11-15 18:35:22 825

转载 Android MVP 详解(下)

5. 最佳实践好了终于要点讲自己的东西了,有点小激动。下面这些仅表示个人观点,非一定之规,各位看官按需取用,有说的不对的,敬请谅解。关于命名规范可以参考我的另一篇文章“Android 编码规范”。老规矩先上图:MVPBestPractice 思维导图在参考了 kenjuwagatsuma 的 MVP Architecture in Android Developme

2016-11-14 15:34:36 1018

转载 Android MVP 详解(上)

MVP 在 Android 上的使用其实已经有挺长一段时间了,长到似乎有点“过时”了(目前风头正劲的是MVVM),那为什么现在还要讲 MVP。今天我想要讨论它的主要原因有如下几点:1. MVP 并未过时,值得我们研究2. 目前关于 MVP 的资料都不算太详尽3. 由于能力和时间有限,本人拖到最近才下定决心写说明:本文只是抛砖引玉,疏漏之处敬请谅解。MVP 详解思维导图

2016-11-14 15:33:24 1571

转载 Android 国际化字符串资源

字符串国际化  只要在 res 目录下 建对应语言的 values 目录即可.  res下values是所有资源(包括字符串资源)的默认目录,如果没有特指资源目录或找不到某资源时,就用它. 如values-zh-rCN从字符串资源读字符串的方法在 Activity 获取字符串资源:this.getString(R.string.hello)从 Context 获取字

2016-11-14 10:45:47 1549

转载 Gradle for Android 第七篇( Groovy入门 )

迄今为止,我们已经学些了众多gradle构建的概念以及如何运行tasks。在这一章,我们将对这些概念有一个更深的理解,然后开始构建我们自己的tasks。一旦我们掌握了如何编写自定义tasks,那么我们就可以试着编写自己的插件,以达到在多个项目中复用的目的。在我们创建传统tasks之前,我们有必要了解些Groovy的基本语法。因为这理解Groovy如何运行会使得我们能更好的理解tasks和插

2016-10-26 10:42:44 835 1

转载 Gradle for Android 第六篇( 测试)

由于现阶段Android开发趋于敏捷开发,再加上国内大大小小的互联网公司都在做app,导致很多开发人员对单元测试没有基本的概念,但是本篇博文不会为大家讲解什么是单元测试,功能测试,而是讲解如何在Android studio上利用gradle使用现阶段流行的测试框架等。为了确保app或者library库的质量,有一个完整的测试非常重要。很长一段时间,Android开发工具都缺乏针对完整性测试

2016-10-26 10:42:01 1697

转载 Gradle for Android 第五篇( 多模块构建 )

Android studio不仅允许你为你的app和依赖库创建模块,同时也可为Android wear,Android TV,Google App Engine等创建模块,而这些单独的模块又可以在一个单独的项目中使用。举个栗子,在你的app开发后期阶段,你可能需要用到Google Clound或者Android Wear。这种情况下,你可以在你的工程下拥有三个模块:分别是app,google cl

2016-10-26 10:41:19 357

转载 Gradle for Android 第四篇( 构建变体 )

当你在开发一个app,通常你会有几个版本。大多数情况是你需要一个开发版本,用来测试app和弄清它的质量,然后还需要一个生产版本。这些版本通常有不同的设置,例如不同的URL地址。更可能的是你可能需要一个免费版和收费版本。基于上述情况,你需要处理不同的版本:开发免费版,开发付费版本,生产免费版,生产付费版,而针对不同的版本不同的配置,这极大增加的管理难度。Gradle有一些方便的方法来管理这些

2016-10-26 10:40:29 298

转载 Gradle for Android 第三篇( 依赖管理 )

依赖管理这会是一个系列,所以如果你还没有看我之前的几篇文章,请先查看以下文章:Gradle for Android 第一篇( 从 Gradle 和 AS 开始 )Gradle for Android 第二篇( Build.gradle入门 )Gradle for Android 第四篇( 构建变体 )Gradle for Android 第五篇( 多

2016-10-26 10:39:32 1269

转载 Gradle for Android 第二篇( Build.gradle入门 )

理解Gradle脚本当然我们现在讨论的所有内容都是基于Android studio的,所以请先行下载相关工具。当我们创建一个新的工程,Android studio会默认为我们创建三个gradle文件,两个build.gradle,一个settings.gradle,build.gradle分别放在了根目录和moudle目录下,下面是gradle文件的构成图: MyApp ├──

2016-10-26 10:38:38 359

转载 Gradle for Android 第一篇( 从 Gradle 和 AS 开始 )

今天主要介绍Android studio工具的使用,以及cradle基础入门,使用cradle wrapper和如何从eclipse迁移到Android studio。这篇文章记于2015.12.30,Android studio正式版本已经开发到1.5,而预览版已经到了2.0,所以转到Android studio吧。当你第一次打开Android studio的时候,有一个视图显示

2016-10-26 10:37:16 362

转载 [Android]实现类似微信的延迟加载的Fragment——LazyFragment

参考微信,使用ViewPager来显示不同的tab,每个tab是一个Fragment,假设有3个tab,对应的fragment是FragmentA、FragmentB、FragmentC需要实现的效果是进入后,默认先只加载FragmentA,具体滑动到了哪个Fragment,再去加载该Fragment的数据。可以参考如下BaseLazyFragment代码:

2016-10-20 17:29:04 546

转载 2016年最值得学习的五大开源项目

1,Material Animations演示View的平移、缩放动画,activity进入和退出动画,界面间元素共享,并且开发者在README中,对动画原理进行了精讲,是学习动画很好的项目,项目代码量比较少,也很适合新手学习。项目地址GitHub: https://github.com/lgvalle/Material-Animations2,Meizhi每天

2016-10-13 14:33:04 415

转载 Gradle tip #3-Task顺序

我注意到我在使用Gradle的时候遇到的大多数问题都是和task的执行顺序有关的。很明显如果我的构建会工作的更好如果我的task都是在正确的时候执行。下面我们就深入了解一下如何更改task的执行顺序。dependsOn我认为最直接的方式来说明的你task的执行时依赖别的task的方法就是使用dependsOn方法。 比如下面的场景,已经存在task A,我们要添加一个task

2016-10-07 23:38:40 503

转载 Gradle Tips#2-语法

Gradle Tips#2-语法在第一篇博客中,我讲解了关于tasks和构建过程中task的不同阶段。在写完这篇之后,我意识到我应该更详尽的讲述一下Gradle。弄懂语法很重要,免得我们碰到复杂的构建脚本的时候直接晕菜。这篇文章我就会讲解一些语法上的东西。语法Gradle脚本是使用Groovy语言来写的。Groovy的语法有点像Java,希望你能接受它。 如果你对Gro

2016-10-07 23:37:59 263

转载 Gradle Tips#1-tasks

以这篇博客开始,我将写一系列关于Gradle的文章,用来记录接触Gradle构建脚本以来我所理解的Gradle。今天要讲的就是Gradle tasks以及task的配置和运行。可能有的读者还不了解Gradle task,用真实的例子来展示应该更容易被理解。下面的代码展示了三个Gradle task,稍后会讲解这三者的不同。 task myTask { printl

2016-10-07 23:37:31 280

转载 android-gradle-深入浅出-五:build type

默认情况下,Android插件自动为项目构建一个debug和一个release版本的应用。这两个版本的不同主要体现在在非开发机上的调试功能以及APK的签名方式。debug版本使用一个用公开的name/password创建的key来签名(这样构建的时候就不需要提示输入密码了)。release版本在构建的时候不会进行签名,而是稍后在做。这个可以使用gradle中的BuildType对象来进行配置。

2016-10-07 23:36:48 725

转载 android-gradle-深入浅出四:自定义构建过程之配置manifest

Android Gradle插件提供了大量的DSL来自定义构建过程,这篇blog就来讲解如何在gradle中配置manifest。DSL提供了配置以下Manifest条目的功能:minSdkVersiontargetSdkVersionversionCodeversionNameapplicationId (更加方便有效的包名 -- [参考](http://tools.

2016-10-07 23:35:37 387

转载 深入浅出Android Gradle构建系统(三:build task)

构建任务(Build Tasks)java和Android通用的任务在build文件中使用了Android或者Java插件之后就会自动创建一系列可以运行的任务。Gradle中有如下一下默认约定的任务:1. assemble该任务包含了项目中的所有打包相关的任务,比如java项目中打的jar包,Android项目中打的apk2. check该任务包含了项目中所有验

2016-10-07 23:34:30 430

Android中关于Volley的使用

Android中关于Volley的使用,讲解很详细,需要的请下载

2016-02-21

一个简单的屏保实现源码

松崎视力增进法十五点纸训练软件,Android源码实现。

2016-01-11

XMPP高级编程+使用JavaScript和jQuery

XMPP高级编程+使用JavaScript和jQuery,讲解的比较详细,需要Xmpp开发的朋友可以下载查看

2015-12-15

XMPP协议分析

XMPP协议分析讲解,为基础模块,有需要的可以下载查看。

2015-12-15

qtUDP编程 Arm & x86

qtUDP编程 Arm & x86,源代码,一全部验证实现。

2012-04-26

空空如也

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

TA关注的人

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