- 博客(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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人