自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yuanyang5917的专栏

个人工作室

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

原创 Android获取栈顶Activity便捷工具

通过Application regist ActivityLifecycleCallbacks,监听栈顶Activity不建议在onNewIntent、onRestart中处理当前UI,因为目标Activity仍未显示import android.app.Activity;import android.app.Application;import android.content.Con...

2019-10-13 17:06:33 718 1

原创 Git常用操作命令

git init # 初始化本地git仓库(创建新仓库)git config --global user.name “xxx” # 配置用户名git config --global user.email “[email protected]” # 配置邮件gi...

2019-08-26 18:29:59 244

原创 加固(反逆向)调研

加固(反逆向)调研加密技术历史壳史第一代壳 Dex加密第二代壳 Dex抽取与So加固第三代壳 Dex动态解密与So混淆第四代壳 arm vmp Java2C破解难度常见app加固厂商脱壳方法研究[^2]第一代壳第二代壳第三代壳第N代壳免费版各平台对比常见付费版对比(反编译dex保护部分)兼容性以下几组是其网上对于免费版的几次测评结果:以下几组是各平台的兼容性自述:部署付费版安全技术排名:相关资料...

2019-08-26 14:34:59 1036 2

转载 《自控力》——凯利.麦格尼格尔

关于作者凯利·麦格尼格尔教授是斯坦福大学备受赞誉的心理学家,也是“科学助人”这一新领域的领先专家。她曾获得斯坦福大学的最高教学荣誉奖。《自控力》这本书的内容就取自于她在斯坦福大学开设的“意志力科学”这门课程。关于本书在本书里,作者不仅提供了各种简单易行的提高意志力的方法,比如5分钟冥想,10分钟延迟满足,增加1小时睡眠等等,而且还花了大量的篇幅来分析我们为什么会控制不了自己。作者博...

2019-03-11 09:52:31 8345

原创 模仿微信图片放大页功能以及进入退出效果

模仿微信图片放大页功能以及进入退出效果类似微信图片放大页的进出动画、图片预览支持图片手势缩放、拖拽等操作,基于ImageViewer微修改,修复了一处崩溃,一处体验效果:自定义属性 属性名描述ivr_show_index是否显示图片位置ivr_do_enter是否开启进场动画ivr_do_exit是否开启退场动画ivr_duration...

2019-03-11 09:48:58 367

原创 怎样成为时间管理的高手

一、有技巧的做一个计划 《高效能人士的七个习惯》: 任何事情都是先在头脑中构思,也就是智力上的第一次创造,然后再付诸实践,也就是体力上的第二次创造。计划:规划和备忘计划:未来要达成的目标,以及达成路径,进行头脑中的第一次创造的过程。 还需要把头脑中的计划落实到纸面上,也就是可视化。用头脑制定计划,用可视化的计划表指挥你的行动。极简的项目计划表:分拆子项目和设定...

2018-06-29 14:34:40 6009 4

原创 RxJava2学习笔记

参考资料给 Android 开发者的 RxJava1.x 详解这可能是最好的RxJava 2.x 教程ReactRx官网RxJava2-Android-SamplesRxJava2Examples什么是响应式编程响应式编程是一种基于异步数据(事件)流概念的编程模式。数据流就像一条河:它可以被观测,被过滤,被操作,或者为新的消费者与另外一条流合并为一条新的流。响应式编...

2018-05-28 17:56:24 331

原创 Android-Gradle阅读笔记

Gradle(2012) 是什么?类似Ant(2000)和Maven(2004)概念的项目自动化建构工具。AntApache Ant是一个java库,主要用来构建Java程序。(C、C++、Java项目、Android项目) 主要功能:描述互相依赖, 提供了一个内置的编译,安装,测试和运行任务(target相当于gradle的task)。Java项目的编译规则: AD...

2018-04-08 16:24:53 499

原创 珍藏的CHROME插件

私人珍藏的CHROME插件,吐血推荐(一) 私人珍藏的CHROME插件,吐血推荐(二) 私人珍藏的CHROME插件,吐血推荐(三)

2018-01-04 10:00:02 2733

原创 SurfaceView 黑背景、色差、黑闪烁问题

复杂持续UI的绘制,用View可能会导致卡顿,而TextureView使用的GPU绘制,无法获取canvas,所以使用SurfaceView 是最优选择。SurfaceView的原理:SurfaceView默认在DecorView的层级的下面,为了能看到,DecorView会在相同位置设置一个类似透明的View。(SurfaceView理解))(关于Activity原理)SurfaceView 存在

2017-10-20 10:47:33 3772

原创 Android自定义属性

一Android自定义属性的定义类型使用 1 属性 2 系统属性的定义 3 自定义属性类型 4 自定义属性的使用 二 View构造方法调用场景 1 第一个构造函数 2 第二个构造函数 3 第三个构造函数 31 统一修改样式 32 自定

2017-09-26 20:48:50 576 1

原创 Android 接口返回Json解析

基于最原始、最愚蠢的网络请求返回包括网络请求状态,引发的一些思考 ( 只需要编写body部分,而且body对应的bean可以通过泛型传入,代替Class作为参数传入,将解析逻辑抽取并做到可配置,且可分类配置 )举个栗子先// 举个栗子,下面这个Json作为我们要解析的返回数据{ "header": { "code": "SUCCESS", "me

2017-09-22 18:36:56 1100

原创 View.post分析

我们在使用View的时候可以直接使用View对象进行post(runnable),难道View里面有主线程Handler对象?是每个View都有一个Handler,还是公用的?为何View 没有 AttachedToWindow的时候View.post无效呢,后面还会执行么?

2017-09-21 17:25:07 752

原创 Android屏幕适配

最近看了下慕课网的Android屏幕适配,真是醍醐灌顶。 而此视屏详尽的笔记资料凯子哥(赵凯强)早已流芳——Android屏幕适配全攻略(最权威的官方适配指导) 鸿洋_Android 屏幕适配方案中

2017-03-06 15:52:26 635

原创 安卓知识点汇总

痛苦的生活,在于才华配不上梦想!!还好美好之路有迹可循~~

2017-02-13 23:22:15 659 1

原创 Retrofit完全解析(四):Type<应用>

终于可以开启Retrofit > Type之旅了从Utils类开始 /** * 获取Type类型所对应的Class类型 * 1.Type分为Class类型跟四大Type类型 * 2.四大Type类型所对应的Class类型何解? * 2.1 ParameterizedType : *

2016-11-17 17:24:19 850

原创 Retrofit完全解析(三):Type<基础详解>

Object跟Class可跳过 ObjectObject是class层次结构的根(Java中万物皆对象)。Object是所有class的超类(包括Class类)。 所有对象,包括数组,实现Object类的(hashCode、equals、clone、toString、notify..)方法。 Class class的实例Class代表java程序中正在运行的cl

2016-11-14 16:12:23 1830 2

原创 Retrofit完全解析(二):泛型(Generic)

Retrofit源码阅中,发现自带晕眩光环的Type(简直无CD),而谈到Type绕不过泛型,借这个机会好好捋捋。1.泛型的由来引入版本: Java平台在JDK 5中引入了一个重要的特性 —— 泛型(generics)(又被称作参数化类型 parameterized type),。泛型引入的目:为了解决容器(数据结构)的类型安全性,使得编译器在编译时就能发现明显的类型错误,从而避免运行时的转型错误(

2016-10-27 17:52:40 3575

原创 设计模式——代理(Proxy)

代理模式是一种结构型模式。代理模式给某一对象提供一个代理对象,并且由代理对象控制对原对象的引用。#代理模式的结构所谓代理就是由一个代理对象去代替处理目标对象,而处理的逻辑是由代理对象引用并调用目标对象进行处理的,也就是最终仍然是目标对象处理相应的逻辑,代理对象仅仅起到了中介作用。代理模式结构图:在代理模式中的角色:抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地

2016-09-02 13:30:21 581

原创 设计模式——策略模式

策略(cè lüè),意思是计策、谋略。该词语一般是指可以实现目标的方案集合以及根据形势发展而制定的行动方针和斗争方法,也用来表示有斗争艺术,能注意方式方法。 一言以蔽之:方案集合、根据具体情况制定的方案。策略模式其实是选择策略(方法)的模式。 用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。这个模式涉及到三个角色:环境(Context)角色:持有一个Strat

2016-09-01 16:09:24 581

原创 设计模式——适配器模式(Adapter)

Android中我们给ListView以及RecyclerView塞数据的时候经常会使用ArrayAdapter,BaseAdapter,RecyclerView.Adapter等各类Adapter,我们都知道他们是适配器,那么究竟适配器是什么呢?#现实中最常见的适配器例子:三头的插头要在两孔的插座上充电,需要一个适配器进行转接。有人说买的时候直接买个三孔的插座不就行了么? 可家里还有电视、电脑

2016-09-01 14:41:06 427

原创 设计模式——责任链(Chain of Responsibility)

责任链模式 为 设计模式的 行为型模式的一种.责任链最常见的举例是 申请费用:程序猿 申请出差费用 (由于各位领导的审批额度有限,需要逐层审批):小组长—>项目经理—>部门经理—>Boss(小组长发现额度过大,小组长向项目经理申请,项目经理发现数额过大,项目经理向上申请(所以程序猿并不知道最终是谁处理的,最终那位领导可能也不知道具体是谁申请的——解耦))这里的程序猿就是Client(Requ

2016-08-30 16:50:05 547

原创 设计模式——单例

学习了《Android 源码设计模式解析与实战》作者的Android源码设计模式分析项目以及最适合作为Java基础面试题之Singleton模式两篇优秀文章,来写个笔记,方便复习。单例是我学习的第一个设计模式,今天系统的回顾下: 单例顾名思义就是让某一类型只允许存在单独一个实例,为了节约资源,为了复用。#使用方式:1. 懒汉式(Lazy Singleton)public class LazySin

2016-08-30 11:54:10 505

原创 Retrofit完全解析(一):REST

最近Retrofit2火的不行,有换掉volley的冲动,看了下Retrofit源码只有二十多个类,还是先拆下轮子。在Phil Goodwin介绍Retrofit的文章中有下面几句:Retrofit REST client for Android ——Retrofit是RestFul的安卓端实现The idea behind Retrofit is to describe a REST api

2016-08-12 11:22:25 813

原创 Mac上JNI入门

入手Mac不久 命令环境设置、文件权限修改 都不熟 这里记录下实现hello-jni的步骤,方便以后查阅一、NDK下载当前AndroidStudio中已有集成:android-sdk-macosx/ndk-bundle 没有点此下载官方最新版二、ndk-build环境配置跟Window一样,Mac也需要设置环境 需要在bash_profile文件中进行设置:pico .bash_

2016-05-25 12:54:18 1170

原创 Android单元测试<中>(Android官方MVP架构示例项目解析)

解读Android官方MVP项目单元测试分析得很到位 ——本篇以此为基础,有所补充 本文通过分析Android官方MVP项目中最基础的todo-mvp/示例项目,来归纳如何测试。(本篇不会介绍此Demo的逻辑、源码结构,请阅读代码之后再读此文)一、测试Presenter层这里只说主页面的TasksPresenter中的loadTasks方法(获取所有数据) 从时序图上看,load

2016-05-23 00:21:01 1539

原创 Android单元测试<上>

单元测试业界标准: MVP + Junit4 + Mockito + Hamcrest + Espresso + Dragger2一、为何要做单元测试App持续集成的时候需要一个集成测试保障其正确性(正确性)页面较复杂的时候,我们是否可以先测试业务逻辑的正确性(边开发边测试)项目较大,编译缓慢,测试业务逻辑部分(测试速度大幅提高)对代码结构、代码健壮性、代码可维护度都有很大提高不

2016-05-21 01:24:01 861

原创 Android Handler机制

1.Handler机制2.Handler类图关系3.Handler运行流程4.子线程是如何将runnable post到主线程运行的?5.Looper.looper()、MessageQueue.next为何不会阻塞?6.handler为何会导致内存泄漏?如何避免?7.message为何不会分发到错误的handler?8.子线程如何创建并使用handler?9.如何实现主线程向子线程发送消息?

2016-05-11 00:08:54 641

原创 Android内存分析之MAT

一为何会OOM一直以来Andorid手机的内存都比iPhoneiPhone6RAM1G大的多Android却经常出现OOM这是为何大型游戏如何在较小的heapsize上运行Android内存究竟如何native heapjava heap以上主要来自现任支付宝大神余龙飞著作Android进程的内存管理分析二内存分析之MAT谷歌提供了几种内存检测工具触发内存泄漏怎样的内存是健康的MAT基础知识

2016-04-28 00:18:15 2728

原创 Java OOP 思想

Oriented 面向Oriented 意味着一种信仰(万物皆对象)Object-oriented 相信任何软件都是由对象所构成的,而且Nothing else.根据上述信仰,电脑语言的设计就简化了,写程序只要定义类别(Class)就行了Oriented、Based、Driven、Centered之间的区别?Based 的涵义 例如:Requirement-based基于需求 Requi

2016-04-23 20:24:13 990

原创 Android动画

使用Android两年多了,工作中的动画也动能应付,自认为Android中的动画自己也能用个八九不离十,结果我在学习[Periscope点赞效果](http://www.jianshu.com/p/03fdcfd3ae9c)的时候发现动画的这些高级功能我从没用过、也没见过,静下来仔细想了下,我也并不明白Android动画的实现原理,以及生么时候用什么,从视频以及ApiDemo中看到的LayoutAn

2016-04-19 00:37:58 579

原创 ButterKnife实现(事件初始化)<下>

一个星期没更新博客了,虽然目前博客很乱!最近比较忙,视力有些下降,不过ButterKnife的事件实现终算完成了! 新博客地址 ButterKnifeDemo实现(注解完善,方便阅读)目标之所以butterknife可以实现点击view的时候调用注解过的方法,其实是在点击的回调方法中调用目标类的相应注释过的方法:view.setOnClickListener(new Debouncin

2016-04-12 18:04:06 1063

原创 UML类图关系

准备写技术博客,发现UML画不出来,在这里捋一下UML各种类图关系,基于UML类图几种关系的总结,在此基础上做了归纳总结! Process On一款非常好的UML在线编辑工具,made in China在UML类图中,常见几种关系:1.泛化(Generalization_FY:概括)(继承)2.实现(Realization_FY实现)(接口实现)3.关联(Association_FY协会

2016-03-31 15:24:57 1020

原创 ButterKnife实现(控件初始化)<上>

新博客地址 在学习了XUtils的注入方式之后,看了下ButterKnife的实现方式,结果发现完全不一样,然后借鉴网上的博客,结果发现用的都是Eclipse以及旧版本的ButterKnife进行实现的。 这里我用AndroidStudio根据ButterKnife的版本进行了实现。文字枯燥,还是先看下butterknife的module图: 先看下ButterKnife中生成的j

2016-03-29 15:47:15 2353

原创 注解初始化控件(XUtils方式)

新博客地址注解初始化控件(XUtils方式)DEMO链接地址 在第一次潭州教育的公开课上接触了这个框架的讲解,我动手研究了一下,结果一出手就停不下来,先后被我碰上了(Glow公司的技术博客——动态Android编程 )、从几个大牛的博客(学到了github pages + Jekyll 免费制作博客网站) 我发现不写博客,很多东西就会忘记(代码如何上传到jcenter我已经忘记了)

2016-03-29 11:37:53 1585

转载 推荐几款实用的Android Studio 插件

推荐几款实用的Android Studio 插件泡在网上的日子 发表于 2015-10-09 10:47 第 4295 次阅读 插件,Android Studio3原文出处:http://www.jianshu.com/p/6f5f818afe4b 1、android-butterknife-zeleznyandroid-butterknife-zele

2016-01-13 16:02:10 681

转载 Android M新控件之AppBarLayout,NavigationView,CoordinatorLayout,CollapsingToolbarLayout的使用

上一篇博客我们学习了Android Design Support Library库中的 是个简单的组件,不了解的童鞋可以参考之前的博客 Android M新控件之FloatingActionButton,TextInputLayout,Snackbar,TabLayout的使用。这篇博客我们继续学习Design库中的其他四个组件,分别是AppBarLayout,NavigationVi

2015-09-25 08:43:29 774

转载 Map接口之HashSet、Hashtable、LinkedHashMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap

Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复。所以通过指定的key就可以取出对应的value。Map接口定义了如下常用的方法:1、void clear():删除Map中所以键值对。2、boolean containsKey(Object key):查询Map中是否包含指定key,如果包含则返回true

2015-09-24 10:04:35 520

原创 Junit学习笔记

Junit《一》1. 使用Junit的最佳实践:1)新建一个名为test的source folder,用于存放测试类源代码2)目标类与测试类应该位于同一个包下面,这样测试类中就不必知道源代码所在的包,因为他们位于同一包下面3)测试类的命名规则:假如目标类是Calculator,那么测试类应该命名为TestCalculator或者是CalculatorTest2.Juni

2015-07-17 19:47:29 810

原创 事件总线OTTO(助Android深层次解耦——跟回调说拜拜)

官方定义:       Otto is an event bus designed to decouple different parts of your application while still allowing them to communicate efficiently.原理观察者模式 + 注解 + 反射 Otto实现篇这里要注意几

2015-05-04 16:23:59 1286

mips64el-linux-android-4.9和mipsel-linux-android-4.9

android-ndk-r10-mac-x86_64包里toolchains目录下的mips64el-linux-android-4.9和mipsel-linux-android-4.9,可以解决NDK17版本以上编译出现的No toolchains found in the NDK

2019-04-03

Android一键反编译

Android apk一键反编译工具,好用不贵··

2018-09-13

PeriscopeLayout动画优化

PeriscopeLayout动画优化

2016-04-20

ButterKnife 控件事件基本实现demo

学习ButterKnife的好demo,思路清晰,注解全面,欢迎下载品尝

2016-04-13

ButterKnife事件初始化

ButterKnife的demo实现,注解清晰,实现控件初始化,事件注入

2016-04-12

View注入demo(模仿ButterKnife的APT方式)

APT实现View注入(模仿ButterKnife) 去除了ButterKnife中繁琐的编译校验 代码简单,方便大家学习APT跟JavaPoet 事件注入请关注后面的博客

2016-04-01

Android IOC获取注解(XUtils方式)实现Demo

Android IOC获取注解(XUtils方式)实现Demo 代码简单,注解详细,欢迎阅读

2016-03-31

空空如也

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

TA关注的人

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