自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

瑜艾

路漫漫其修远兮

  • 博客(49)
  • 资源 (15)
  • 问答 (2)
  • 收藏
  • 关注

转载 Android 1.5到10.0 都有哪些新特性?

转载作者:嘟嘟呢https://blog.csdn.net/u012758803/article/details/54844903Android 1.5(Cupcake纸杯蛋糕):智能虚拟键盘;使用widgets实现桌面个性化;在线文件夹(Live Folder)快速浏览在线数据;视频录制和分享;图片上传;更快的标准兼容浏览器;Voice search 语音搜索;立体声蓝牙和免提电话A...

2019-02-15 15:32:19 342

原创 Android性能相关--性能指标篇

数据概述数据获取CPU数据/proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。/proc/< pid >/task/< tid > : &amp

2018-12-13 15:02:02 4017

原创 Android UI绘制 - 动画进阶

Canvas、LayerPS:addArc(Rect,startAngle,sweepAngle)中startAngle:确定角度的起始位置sweepAngle : 确定扫过的角度,扫过的角度360为顺时针一圈,-360为逆时针一圈,但如果扫过的角度超过360则起点会变成0度而非startAngle百分比圆的时候特别注意,这时候一般设置为359PS:saveLayer可以为canvas创...

2018-11-22 10:48:17 746

原创 Android UI绘制 - 动画基础

帧动画<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/andro

2018-11-07 15:59:34 182

原创 Android UI绘制 -- Drawable

Drawable 功能获取和设定可绘制区域public final Rect getBounds() public void setBounds(int left, int top, int right, int bottom) public void setBounds(Rect bounds) //显示级别,从0到10000public final boolean setLevel...

2018-11-05 16:19:03 842

原创 Android UI绘制 -- 屏幕适配

#重要概念屏幕尺寸手机对角线的物理尺寸,单位英寸。常见的有:5寸、5.5寸、6寸等屏幕分辨率手机在横向、纵向上的像素点数总和,单位px。常见的有:1080x1980、720x1280/480x800等屏幕像素密度每英寸的像素点数,单位dpi。密度类型代表分辨率(px)屏幕像素密度(dpi)低密度(ldpi)240x320120中密度(mdpi)3...

2018-11-02 11:59:31 489

原创 Android多渠道打包

方案介绍优缺点友盟多渠道打包方案利用meta-data记录每个渠道,每个渠道都需要走一次打包流程缺:打包速度慢美团多渠道打包方案1向apk的META-INF目录写入空文件,文件名即为渠道名优:快速缺:Android7.0之后打包会记录文件结构,新增空文件导致签名不一致,无法使用美团多渠道打包方案2 – Walle通过在Apk中的APK Signature...

2018-09-26 16:23:32 135

原创 Android 资源、代码打包 && 签名过程&&资源查找过程

1. 创建Android应用程序(利用SDK提供的android.bat批处理工具) android create project Options: -n –name 应用程序的名字 -t –target SDK Target ID -p –path 应用程序的工作目录 -k –package 应用程序的包名 -a –activit

2018-09-20 15:07:36 377

原创 Android AOP 三剑客:APT AspectJ Javassist

概述AOP三剑客各自作用的位置 APT 注解处理器(Java5 中的Annotation Processing Tool),注解现在已经比较常见,使用广泛,可以为我们提供准确的切入点。教程参见代表框架:DataBinding、Dagger2、EventBus3、DBFlow、AndroidAnnotation等AspectJ主要任务是在编译期注入代码代表框架:Hugo(Jak...

2018-09-11 15:00:39 966

原创 Android Framework -- WindowManagerService

WindowManagerServiceWindowManagerSerivce有三个主要功能: 窗口管理系统:负责窗口的启动、添加、删除、大小、层级顺序等,它会为每个窗口分配一块Surface以供绘制。核心成员有DisplayContent、WindowToken、WindowState 窗口动画系统:窗口切换时的动画。核心成员:WindowAnimator、Choreographer ...

2018-08-31 16:06:24 1173

原创 Android Framework -- ActivityManagerService

概述AMS管理者四大组件 Activity Service BrocastCast ContentProvider,AMS与四大组件之间通过Binder通信,AMS作为服务端。Activity启动流程简化口述版Launcher进程中:【图标】被点击,Launcher进程向AMS发起【启动某个Activity】(附带信息)的Binder请求AMS进程中:【保存Activity信息...

2018-08-28 15:15:53 357

原创 Java语法-反射、注解(及APT)、泛型、动态代理

反射获取Class//法一,对象.getClass,不适用于int等基础类型Class clazz = new Person().getClass//法二,.ClassClass clazz = Person.Class//法三,包名try { Class clazz = Class.forName("com.android.test.Person");} catc...

2018-07-24 18:08:19 1860

原创 Java基本类型和数据结构

基本类型精度丢失和溢出: 精度丢失一般发生在浮点型存储数值或类型强制转换的时候。我们知道计算机存储数值实际存储的是二进制,举个粟子double r1 = 1 - 0.99;double r2 = 2 - 0.99 result的值是0.010000000000000009,r2的值为1.01,因为0.99转换成二进制的时候就已经精度丢失了。小数二进制和十进制的转换方法,类似...

2018-07-20 13:52:09 8956 1

原创 Java虚拟机--编译期/运行期优化与高效并发

测试

2018-07-19 09:59:35 134

原创 Java虚拟机--Java内存模型与线程

并发编程模型线程之间的通信机制有两种:共享内存和消息传递消息传递的并发模型(同步隐式进行) eg:主内存中有变量x=0;线程A和线程B都会对它进行自增操作。线程A先对x做自增操作,此时线程A会将主内存中的x=0复制一份到本地内存并进行自增x=1。当线程A与线程B通信的时候,线程A会首先把本地内存中的x刷新到主内存中,完成隐式同步。共享内存的并发模型(同步显式进行,程序员需显式指定代码

2018-07-19 09:58:51 179

原创 代码规范与质量

保证项目代码的和谐一致 CheckStyle 和 Alibaba Java Coding Guidelines一般代码编写规范包含代码结构,格式,命名、javadoc还有编码的最佳实践等内容CheckStyle是一个帮助程序员来遵守一直的编码规范的工具。默认,它支持google 和sun 的java style guide。而且它是高度可配置的,允许自定义编码规范,并可以对各种IDE(ec...

2018-07-10 11:34:45 2735

原创 Android开源库选择

事件总线/消息通信 EventBus VS Otto VS RxJava RxAndroidEventBus支持异步线程场景,Otto主要在主线程中处理EventBus采用反射的方式对整个注册的类的所有方法进行扫描来完成注册,3.0后支持注解以及在编译期扫描,性能有所提升。Otto才有注解方式两个框架均缓存所有注册并有可用性的检测,同时可以移除注册。EventBus官网性能对比...

2018-07-03 17:36:41 333

原创 生命周期

Activity的生命周期 Activity的四种状态 - 运行状态Running:Activity位于栈顶,处于屏幕最前方 - 暂停状态Pause:Activity失去了焦点但仍然对用于可见 - 停止状态Stop:Activity对用户不可见 - 销毁状态Destroy:人为或系统原因(如低内存等)被销毁onCreate时界面尚不可见,onStart后界面可见,onRe...

2018-06-28 17:18:31 202

原创 Android 单元测试

测试

2018-06-05 17:04:12 190

原创 Android IOS UI自动化测试:Appium

移动APP自动化测试框架对比【 腾讯移动品质中心TMQ】客户端自动化测试研究【美团技术团队】Appium【github】Cucumber【github】环境搭建Node.js 官网下载安装包并安装 验证:打开cmd,输入npmJava环境Android环境Ruby 利用rubyinstaller安装Ruby gem update –system g...

2018-06-05 17:03:34 2288

原创 初试React-Native小记

环境搭建本次开发环境 node: v8.9.4 npm: 5.6.0 react: 16.0.0 react-native: 0.51.0 代码编辑器:webstorm 模拟器:ios => siMulator or 真机 / android => Android Studio自带模拟器 or 真机安装Chocolatey,并使用C...

2018-05-31 18:03:30 1065

原创 Android热修复使用详解

到 http://www.tinkerpatch.com 平台注册一个app并获取appKey根据 http://www.tinkerpatch.com/Docs/SDK 文档做配置build.gradle.中// Top-level build file where you can add configuration options common to all sub-pro...

2018-05-25 16:37:53 972

原创 搭建Jenkins持续集成服务

安装Jenkins服务器安装git并配置(略)apt-get install git安装jdk并配置(略)sudo apt-get install openjdk-7-jdk安装sdk并配置(略)wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz安装gradle并配置(略)w...

2018-04-28 14:21:22 368

原创 Android Studio使用备注

常规设置代码字体大小:Preferences (设置)页面搜索 Font 找到 Colors&Fonts 下的 Font 选项进行修改AS界面字体大小:Preferences -> Appearance 修改 快捷键设置 Preferences -> Keymap

2018-02-07 10:24:58 2992

原创 Android UI绘制 -- 滑动

基础scrollBy()、scrollTo()的本质都是修改View中的mScrollY、mScrollX;而修改这两个参数的效果就是View在绘制的时候会将整个View的坐标进行平移。 详见 不再迷惑,也许之前你从未真正懂得 Scroller 及滑动机制ScrollerScroller 只是一个普通的类,它封装了滚动事件,可用于View的平滑滚动效果。但是,它只是提供滚动时的数据变化,它本身不控

2017-12-22 15:51:05 341

原创 Android Framework -- Binder

Binder通信篇Binder的通信部分其实很简单,但源码中的业务封装太过复杂使得Binder看起来很复杂。抛开业务封装看下Binder通讯原理。ServiceManager就抛开了Binder的业务封装,直接使用它的通信功能。首先我们知道,逻辑地址空间有4G,其中3G为用户空间,1G为内核空间;我们的应用进程都在用户空间中且相互隔绝无法直接互相访问。于是乎有了进程间通信的需求。Android基于L

2017-12-03 18:21:45 417

原创 Android Framework--PackageManagerService

PackageManagerService负责Package的管理、应用程序的安装、卸载以及提供应用程序的信息查询PKMS的启动过程通过 Android Framework–启动流程 一文我们知道SystemServer阶段会启动各种服务,其中就包括PKMS 在SystemServer.java的run中private void run() { ... // Start servi

2017-11-06 14:20:53 328

原创 Android常用Support库

Support Annotation Library元注解,帮助开发者在编译期间发现可能存在的bug;如果出现违反注解的代码AndroidStudio会给出提示,lint扫描的时候也会给出错误提示 Null注解● Nullable 作用于函数参数或返回值,表示其可以为空 ● NonNull 作用于函数参数或返回值,表示其不可以为空资源类型● AnimatorRes:标记整型值是android

2017-10-13 17:26:32 804

原创 图片加载库Glide/页面路由框架Alibaba-ARouter/视图注入库Butter Knife/消息总线EventBus

Glide 4一、集成和基本用法Github地址: https://github.com/bumptech/glideapp或lib级别的build.gradle文件添加依赖:dependencies { compile 'com.github.bumptech.glide:glide:4.0.0-RC1' annotationProcessor 'com.github.bumptech.g

2017-09-04 18:10:14 1449

原创 Java虚拟机--类加载机制

类文件结构Class文件是一组以8位字节为基础的二进制流,中间没有添加任何分隔符。Class文件格式采用一种类似于C语言结构体的伪结构来存储数据,这种结构只有两种数据类型:无符号数和表。 无符号数属于基本的数据类型,以u1、u2、u4、u8来分别代表1个字节、2个字节、4个字节、8个字节的无符号数,无符号数可以描述数字、索引引用、数量值或者按照utf-8编码构成的字符串值。 整个Class文件本

2017-08-13 23:28:20 276

原创 Java虚拟机--自动内存管理机制

Java虚拟机内存分布虚拟机栈:Java方法的内存模型,即每个方法的执行都会创建一个虚拟机栈帧,方法的执行过程就是栈帧的入栈出栈,每个栈帧用于存储局部变量表、操作数栈、动态链接、方法返回地址和一些额外的附加信息(运行期会有JIT优化,但我们理论上认为这部分所需内存编译期可知);线程独立;StackOverflowError和OutOfMemoryError 局部变量表:存储编译期可知的...

2017-08-13 00:23:54 255

原创 Android Framework -- InputManagerService

分发流程 我们知道system_server会启动各种服务,其中包括InputManagerService,IMS的native层对应者一个NativeInputManager。事件分发的起源就在这里,NativeInputManager中有三个对象(EventHub,InputReader,InputDispatcher)各自都有一个工作线程。  首先我们输入设备的设备驱动文件都在dev/inp

2017-08-02 17:46:53 526

原创 Android Framework--开机启动流程

Android启动流程boot引导启动–>kernel启动–>Android核心启动(init–>runtime->zygote–&am

2017-08-02 16:42:44 1033 1

原创 Java高并发:多线程概览

多线程概览线程的状态流转图 小记:java线程的优先级范围:0~10,值越大优先级越高,默认5可运行状态的线程还需要获得CPU的时间片后才能运行ThreadLocal:每个线程有一个localValue存储ThreadLocal=>Object键值对,ThreadLocal.put数据的时候把自身作为key与value保存到localValue,get的时候在从local...

2017-08-02 14:45:27 221

原创 Android项目构建--gradle常用知识小结与多渠道多Apk打包

gradle概览Project build.gradle//配置构建过程buildscript {//配置依赖仓库 maven repositories { mavenCentral() }//配置依赖插件 gradle dependencies { classpath 'com.android.tools.build:gradle:0.

2017-08-01 10:19:58 668

原创 Java常见算法概览

概述java集合框架大致可以分为以下几个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections;Arrays和Collections是用来操作数组、集合的两个工具类)。 基本组成数组链表:单向链表,双向链表,循环单向链表,循环双向链表 class Entry<E> { Entr

2017-07-24 17:54:03 307

原创 Android性能相关--经验篇

ANR: ● CPU很高,说明当前设备很忙,CPU资源被抢占导致ANR–>Log中ActivityManager标签 ● IOwait很高,很可能主线程执行耗时IO操作 ● 其他,主线程被BLOCK常识: ● 系统每隔16ms发出VSYNC,对UI进行渲染,如果程序花了32ms完成渲染,则中间一帧渲染失败就丢掉了

2017-06-30 11:39:40 522

原创 Android异步相关-AsyncTask/HandlerThread/IntentService

AysncTaskAsyncTask本质上是一个Handler和线程池的封装,线程池用来异步处理后台任务,handler用来发送消息进行UI方面的交互 优点:适合简单短时的异步任务,可以同时爆发数量较大的异步任务(支持线程池,任务队列128个,最多同时并发5个)过程可控(即onPreExecute、doInBackground、onPostExecute等)HandlerThr

2017-06-25 22:16:35 297

原创 Android性能相关--工具篇

Android System Trace功能:主要用于发现性能瓶颈,可展示每个Frame的情况(Frame),查看有性能问题的点(Alert) 用法:Android Device Monitor -> Device -&

2017-06-21 23:51:58 1011

原创 Android异步相关-Handler

Handler机制相关Handler的几个关键对象Handler:Handler类几个核心对象Lopper、MessageQueue、Callback、IMessager,很明显Hadnler机制怎么跑都在这里了,后面再详细看Looper:几个主要的对象:static Looper存储了主线程的Looper;Thread存储当前线程;MessageQueue当前线程队列;还有一个static Th

2017-06-21 23:49:47 174

aspectj环境安装

aspectj环境安装

2018-09-07

WindowManagerService详解图

WindowManagerService详解图

2018-08-31

Audio概述图解(亿图打开)

Audio概述图解(亿图打开)

2018-08-28

Launcher启动Activity流程图详解

Launcher启动Activity整个的流程图详解,使用亿图打开。

2018-08-20

卡顿监控(实现CPU信息部分而已,可按需扩展)

利用MainLooper每次调用dispatchMessage前后都会利用Printer打印日志,如果dispatchMessage执行超时则卡顿出现,只需记录dispatchMessage执行时间超过一定时间则记录相关信息

2018-07-09

MultiRecyclerView

http://blog.csdn.net/xiaoru5127/article/details/78929673

2017-12-29

Android优化技术详解 陈德春

Android优化技术详解 陈德春 Android优化技术详解 陈德春 Android优化技术详解 陈德春

2017-11-16

Android开发进阶从小工到专家(书签版)

何红辉-Android开发进阶从小工到专家(带书签高清版) 何红辉-Android开发进阶从小工到专家(带书签高清版) 何红辉-Android开发进阶从小工到专家(带书签高清版)

2017-11-15

Android启动流程(部分)

http://blog.csdn.net/xiaoru5127/article/details/76585007

2017-08-02

Activity启动过程

Activity启动过程

2017-06-20

android轮播,解决图片小于3张切换问题

android轮播,解决图片小于3张切换问题

2016-06-12

FFMPEGFFPLAY源码剖析

FFMPEGFFPLAY源码剖析 http://blog.csdn.net/xiaoru5127/article/details/51527682

2016-05-29

FFmpeg编译资源+DEMO_For_Android

http://blog.csdn.net/xiaoru5127/article/details/51524795 ubuntu编译ffmpeg的结果(result压缩包) android示例demo(FFmpeg压缩包)

2016-05-28

Android图片处理100例

Android图片处理的一个DEMO,里面包含各种图片处理100例

2016-05-25

dcloud 5+sdk 插件demo

http://blog.csdn.net/xiaoru5127/article/details/51433824 这个包是h5+源码的形式;本来要传三个 太大就算了 我一般有2个 第一个就是这个h5+插件源码;这样方便调试 第二个是把插件源码拿出来打包成jar文件,这是最终效果 另外,打包jar的话注意资源文件的引用方式

2016-05-17

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

TA关注的人

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