自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chengyuan的博客

分享android进阶学习心得

  • 博客(28)
  • 资源 (5)
  • 收藏
  • 关注

转载 android annotation

元注解元注解是可以注解到注解上的注解,或者说元注解是一种基本注解,它能够应用到其它的注解上面。元注解有@Retention、@Documented、@Target、@Inherited、@Repeatable五种。@Retention用于解释注解的的存活时间RetentionPolicy.SOURCE注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视RetentionPolicy...

2019-04-15 11:49:08 148

转载 如何使用AbstractProcessor在编译时生成代码

如何使用AbstractProcessor在编译时生成代码在现阶段的Android开发中,注解越来越流行起来,比如ButterKnife,Retrofit,Dragger,EventBus等等都选择使用注解来配置。按照处理时期,注解又分为两种类型,一种是运行时注解,另一种是编译时注解,运行时注解由于性能问题被一些人所诟病。编译时注解的核心依赖APT(Annotation Processing T...

2018-12-27 16:49:09 2643 1

原创 AccessibilityService用法

AccessibilityService用法<?xml version="1.0" encoding="utf-8"?><accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" android:descript

2018-12-12 10:51:33 1591

转载 Ffmpeg常用命令

Ffmpeg常用命令常用参数:-i 输入流 -ss 起始时间 -t 持续时间 -f 输出格式 -b 设置码率,默认为200Kbit/s -r 设置帧率,默认25 -s 设定画面宽高 -aspect 设定画面比例 -vcodec 视频编码器 -vn 不处理视频 -ar 设定采样率 -ac 设定声音频道数 -acodec 音频编码器 -an 不处理音频视频格式转...

2018-09-06 15:18:24 296

原创 Tensorflow+Spyder环境搭建(Mac OS)

Tensorflow+Spyder环境搭建(Mac OS)TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究。经过一番折腾终于完成tensorflow环境搭建,使用的是spyder编译器。下面简述下环境搭建过程~安装 AnacondaAnaconda 是一个集成许多第三方科学计算...

2018-02-24 17:22:47 3938

原创 React Native Component 生命周期

React Native Component 生命周期简介就像 Android 开发中的 View 一样,React Native(RN) 中的组件也有生命周期(Lifecycle)。所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态。RN 组件的生命周期整理如下图:Default Porps在自定义Component中,可通过defaultProps指定默认的...

2018-02-11 18:48:51 236

原创 React Native Redux 用法介绍

React Native Redux 用法介绍简介简单来说,redux 就是统一帮我们管理了 react 组件的 state 状态。redux适用于多交互,多数据源,复杂程度高的工程中。也就是当你感觉state状态已经复杂到没办法维护的时候,可以考虑redux。工作原理图: Action:它的作用就是将我们更新组件的状态 ( state ) 的每个动作抽象为一个行为,它有一

2018-02-06 17:36:06 247

原创 Design pattern--单例模式

Design pattern–单例模式1)懒汉式,线程不安全public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null)

2018-01-23 14:45:14 150

原创 VasSonic之流式拦截

VasSonic之流式拦截VasSonic框架用到了流式拦截和增量更新技术,下面只简单介绍流式拦截,详细参考:https://github.com/Tencent/VasSonic/wiki 一)传统H5页面打开缓慢的原因?1.打开一个H5页面首先需要初始化WebView内核和渲染组件(冷启动耗时200~500ms,冷启动过程中网络处于空等状态) 2.完成初始化后,WebView在...

2018-01-22 20:18:58 702

原创 GradientTextView

GradientTextViewGradientTextView是一个自定义文本控件,支持文字颜色渐变;一、效果展示支持水平和竖直两个方向渐变,效果如下: 二、实现1.布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

2017-08-29 14:44:02 818

原创 Android性能优化(下)

Android性能优化(下)1)Bitmap解码格式 随着解码占用内存大小的降低,清晰度也会有损失。我们需要针对不同的应用场景做不同的处理,大图和小图可以采用不同的解码率。在Android里面可以通过下面的代码来设置解码率: 图片缩放 在保证图像清晰的情况下,可适当缩放,减少内存占用方式一: 方式二: 通常的做法是先设置inJustDecodeBounds等于true,获取到原图的大小后,

2017-08-22 16:14:20 257

原创 Android性能优化(中)

android性能优化(中)1)ArrayMapsHashMap好用,但却很占内存,简要原理如下:官方推荐使用ArrayMap或SparseArray代替:ArrayMap工作原理: 当你想获取某个value的时候,ArrayMap会计算输入key转换过后的hash值,然后对hash数组使用二分查找法寻找到对应的index,然后我们可以通过这个index在另外一个数组中直接访问到需要的键值对。如果

2017-08-22 11:59:31 240

原创 Android性能优化(上)

Android性能优化(上)一、布局优化1)卡顿Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成。因为你的layout太过复杂,无法在16ms内完成渲染,有可能是因为你的UI上有层叠太多的绘制单元,还有可能是因为...

2017-08-21 19:09:39 229

原创 Android AIDL用法介绍

Android AIDL用法介绍待续~

2017-07-23 15:37:32 460

原创 Android Binder通讯机制

Android Binder通讯机制一、概念从IPC的角度来说,Binder是android中一种跨进程的通讯方式,Binder可以理解为一种虚拟的物理设备,它的设备驱动是dev/binder; 从Android FrameWork角度来说,Binder是ServiceManager连接各种Manager(ActivityManager、WindowManager,等)和相应ManagerServ

2017-07-22 22:16:07 393

原创 Android多进程模式

Android多进程模式深入理解下android多进程模式,为后续进程间通讯做个铺垫~进程可以理解为一个应用,一个进程可以只有一个线程,即主线程,android中称为UI线程,在UI线程中才能操作view控件;通过给四大组件指定android:process可以轻松启动一个新的进程,看似简单却隐藏了不少问题 ~一、开启多进程在android中使用多进程只有一种方法,那就是给四大组件(Activit

2017-07-22 22:11:51 416

原创 React Native 源码浅析

React Native 源码浅析1.RN是如何完成bundle文件加载的?2.Native和JS之间是如何通讯的?3.JS布局是怎么样被渲染到ReactRootView上的?下面通过对RN源码(版本:0.40.0)的分析,尝试找找这3个问题的答案~chengyuan-macpro:AwesomeProject chengyuan$ react-native -V0.40...

2017-07-05 21:31:18 526

原创 React Native 用法介绍

React Native 用法介绍一、简介React Native是Facebook的一个开源框架,RN提供了是一种更高效更低成本的开发方式,用RN开发的页面具有跨平台、易扩展、运行流畅并且支持动态更新等特点。通过一个例子来了解RN的基本用法,包括JS布局、页面跳转、网络请求等内容二、示例实现用户登录操作,输入用户名密码点击登录按钮跳转到用户资料页,点击返回可回到登录页...

2017-07-03 14:59:21 1236

原创 java内存回收机制(笔记)

java内存回收机制(笔记)java整个GC的过程是虚拟机自动完成的,就是因为虚拟机把这部分工作都做掉了,导致我们对内存分配和回收了解的很少,所以有必要就深入的看下虚拟机是如何完成内存分配和回收的。主流的虚拟机包括JRockit、HotSpot及其他,在JDK7中,默认的虚拟机仍然是HotSpot,所以这里说的GC是指HotSpot的GC机制。一、内存区域划分1.程序计数器...

2017-06-05 09:58:41 364

原创 RecyclerView源码解析之缓存机制

RecyclerView源码解析之缓存机制一、简介RecyclerView是谷歌官方出的一个用于大量数据展示的新控件,可以代替传统的ListView,更加强大和灵活。事实上,RecyclerView在性能上对比listView并没有显著的提示,RecyclerView更大的亮点在于提供了局部刷新的接口,通过局部刷新,就能避免调用许多无用的bindView。因此列表页需要支持动画...

2017-06-05 09:55:10 715

原创 java反射的用法

java反射什么是反射机制简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。基本用法// Person.javapublic class Person { private String name; private int age; public Person() { } public Person(S

2017-06-04 16:30:51 486

原创 Design pattern--代理模式

Design pattern–代理模式代理模式是常用的设计模式之一,在retrofit2源码分析过程中,看到了动态代理的使用,非常精妙,有必要深入理解下。代理模式有两种,静态代理和动态代理。静态代理代理(Proxy)是一种设计模式,即通过代理对象访问目标对象,好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.看一个例子// Subject.javapublic inte

2017-06-03 16:25:05 336

原创 Retrofit2源码分析

Retrofit2源码分析Retrofit是一个基于okhttp的网络请求工具,和google的volley相似,但是更加简洁,可以简洁到调用一个Java方法的方式去请求一个api.一、如何使用?通过一个登录接口来看下retrofit是如何使用的,首先配置app级别的gradle依赖,这里涉及json数据转换,所以需要添加适配:converter-gson。这也是rxjava非常灵活的地方,并且可以

2017-05-25 11:45:12 475

原创 OKHttp3用法介绍

OKHttp3用法介绍我们把用http协议通讯的双方称作Client和Server,Client发送request请求,Server收到请求后处理并返回Client一个response.接口简介接口地址 http://10.4.44.24:8080/DemoApi/login?name=rico&pwd=123456接口结构 - scheme:http - ip: 1

2017-05-08 15:19:52 484

原创 RxJava2使用详解

RxJava2之基本使用学习RxJava2之前需要了解下观察者模式,参考上一篇博客 RxJava2之观察者模式RxJava2是什么一个在Java VM上使用可观测的序列来组成异步的基于事件的程序的库 官网:https://github.com/ReactiveX/RxJavaObserver/Subscriber观察者Observable被观察者(主题Subject)Subscribe订阅主题(

2017-04-30 15:10:41 1087

原创 Design pattern--观察者模式

RxJava全面解析RxJava采用观察者模式实现的,所以有必要先了解下观察者模式什么是观察者模式观察者模式:是对象的行为模式,又叫发布-订阅(Publish-Subscribe)模式,模型-视图(Model-View)模式或源-监听(Source-Listener)模式。观察者模式定义一种一对多的依赖关系,让多个观察者同时监听一个主题对象,这个主题对象在状态发生变化时,会通知所有

2017-04-29 10:16:47 325

原创 Dagger2使用详解

Dagger2使用详解什么是依赖注入?依赖注入就是将调用者依赖的对象实例通过一定的方式从外部传入,解决了各个类之间的耦合问题。这个外部,正是dagger2容器。需要什么对象从容器中取就行了,调用和被调用方被隔离开,通过一个容器将他们联系起来,从而实现了解耦。Dagger2是Google出的依赖注入框架。Dagger2的原理是在编译期生成相应的依赖注入代码。其他框架是在运行时期反射获取注解内容,影响运

2017-04-27 21:27:39 458

原创 android内存分析工具MAT的使用

android内存分析工具MAT的使用当遇到OutOfMemory问题的时候,怎么样通过MAT来定位和分析问题呢?先看个例子:public class MemoryLeakActivity extends AppCompatActivity{ @Override protected void onCreate(@Nullable Bundle savedInstanceState)...

2017-04-14 15:19:24 568

深入浅出Android

Android Android开发 深入浅出Android 适合入门

2011-07-19

pcm音频文件.rar

pcm 音频文件,有需要的可以下载.pcm 音频文件,有需要的可以下载.

2011-07-13

黄金矿工 (手机游戏 c语言开发)

黄金矿工 (手机游戏 c语言开发)、、黄金矿工 (手机游戏 c语言开发)

2011-06-17

电子书翻页效果 (c语言实现)

模拟电子书真实翻页,c语言实现。如有需要可以下载参考

2011-06-17

Linux常用命令全集.rar

Linux常用命令全集//方便大家查看及使用常见命令,好东西一起分享

2011-06-08

空空如也

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

TA关注的人

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