自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Bug不知所起,一往而深。

Stay hungry,Stay foolish.

  • 博客(26)
  • 收藏
  • 关注

转载 adb常用命令

一. 基本指令adb -s serialNumber shell //进入指定设备adb version //查看版本adb logcat //查看日志adb devices //查看设备adb get-state //连接状态adb start-server //启动ADB服务adb kill-server //停止ADB服务adb push local remote //电脑推送

2017-08-12 16:25:38 671

原创 蓝牙app性能分析

一、调试GPU是否过渡绘制使用开发者选项中的过渡绘制功能,颜色标识: GPU过渡绘制从好到差:蓝-绿-淡红-红 蓝(紫)色1x过度绘制 绿色2x过度绘制 淡红色3x过度绘制 红色超过4x过度绘制 由上图显示可以看出,由于此应用页面布局较为简洁,没有出现红色标志的过渡绘制行为,页面冗余度低。二、使用Hierarchy Viewer查看布局层次ViewServer是Android通过4939端

2017-03-27 15:03:01 565

原创 Android Studio 调试机制及性能优化工具使用

Android Studio调试步骤1.设置断点双击代码左侧的空白区域,即可设置断点 2.按下debug快捷键进入debug模式启动app3.触发断点应用启动后,执行到断点时,AS会自动弹出debug面板,开始debug模式。接下来分析下各个快捷键的作用。 4.功能分析调试按键 从左到右来看下各个快捷键的功能:1. Show Execution Point : 点击该按钮时, 光标将定位

2017-03-26 16:17:11 8571 1

原创 Android 蓝牙通信及WiFi开发

在我们正常的Android蓝牙功能开发步骤中,一般要经过系统权限和蓝牙开关状态监测、设备扫描、设备连接、蓝牙数据通信这几个过程。 在Android 4.3系统之后,我们可以使用蓝牙4.0(低功耗蓝牙),它最主要的特点是低功耗,普及率高。现在所说的蓝牙设备,大部分都是在说4.0设备,ble也特指4.0设备。 在4.0之前重要的版本有2.1版本-基本速率/增强数据率(BR/EDR)和3.0 高速蓝牙版

2017-03-16 11:31:09 5133

原创 Rxjava2.0浅析

Rxjava2.0是在Rxjava1的基础上进行了升级 Rxjava2.0和Rxjava1的区别 Rxjava2.0官方Javadoc文档使用无论是Rxjava1.0还是2.0,创建Rxjava完整流程分为三步 1.创建 Observer Observer<WeatherInfoEntity> observer = new Observer<WeatherInfoEntity>() {

2017-03-12 11:18:32 368

原创 ButterKnife配置与使用

ButterKnife是我很欣赏的国外大神JakeWharton的作品,是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及setOnClickListener代码,通过Android Studio 插件可以可视化一键生成。下面是Readme所述 的功能 - Eliminate findViewById calls by using @BindView on

2017-03-07 15:49:03 364

原创 EventBus3.0使用及源码解析

EventBus3.0使用EventBus3.0官方使用文档 EventBus3.0GitHub地址 在EventBus3.0的官方文档中,我们可以从下面几个步骤去使用EventBus来实现事件响应机制。 上图是官方的角色协作图,可以看出EventBus有一下几个角色Event :传递的事件对象Subscriber : 事件的订阅者 Publisher : 事件的发布者Thread

2017-03-06 21:03:51 437

原创 Android网络框架学习之OkHttp

OkHttp官网地址 OkHttp GitHub地址 官网中有很详细的Java doc文档,我们可以很方便的查到OkHttp里面各个API的功能和使用方法。get方式获取数据private String doGet(String areaId) { //1.创建一个okClient对象 OkHttpClient client = new OkHttpClient

2017-03-01 09:45:07 826

原创 Android网络框架学习之HttpClient

简介HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。使用使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。 1. 创建HttpClient对象。 2. 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;

2017-02-28 08:25:27 401

原创 UML及思维导图的理解与使用

UMLUnified Modeling Language (UML)又称统一建模语言或标准建模语言。UML从考虑系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等9种图。这些图从不同的侧面对系统进行描述。系统模型将这些不同的侧面综合成一致的整体,便于系统的分析和构造。尽管UML和其它开发工具还会设计出许多派生的视图,但上述这些图和其它辅助性的文档是软件开

2017-02-21 18:02:13 11431

原创 深入理解Android多线程、线程同步及AsyncTask机制

Android应用中的线程在Android Studio中通过adb shell命令可以查看应用的进程与线程信息,操作之前,先明确几个概念:UID——User ID,即用户id,在Android中,每个应用就代表一个用户,用户id在应用安装后就会分配。 PID——Process identifier,即进程id。 PPID——Parent process identifier,即父进程id,我

2017-02-16 01:22:51 583

原创 Handler ,Looper , Message , MessageQueue的调度原理

一、Handler机制工作流程Android的消息机制主要是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑,MessageQueue是指消息队列,它的内部存储了一组消息,以队列的形式对外提供插入和删除工作,它的内部存储结构并不是真正的队列,而是采用单链表的数据结构来存储消息列表。Looper是消息循环,由于MessageQueue只是一个消息的

2017-02-15 21:57:26 279

原创 Handler、Thread和HandlerThread的差别

概念梳理HandlerHandler是Android消息机制的上层接口,一个Handler允许你发送和处理消息(Message)以及与一个线程的消息队列相关的Runnable对象。sdk官方解释:/** * A Handler allows you to send and process {@link Message} and Runnable * objects associated with

2017-02-15 13:29:26 1322

原创 android三种动画实现原理及使用

android动画目前分为三种:Tween Animation View动画,是通过对场景里的对象不断做图像变换(平移、缩放、旋转、透明度)从而产生动画效果,她是一种渐进式动画,并且View动画支持自定义。Drawable Animation 帧动画,通过顺序播放一系列图像从而产生动画效果,可以理解为图片切换动画。图片过多时容易造成OOM。Property Animation 属性

2017-02-08 23:18:02 6811

原创 自定义View

自定义View步骤构造函数 初始化(初始化画笔Paint)onMeasure 测量View的大小(暂时不用关心)onSizeChanged 确定View大小(记录当前View的宽高)onLayout 确定子View布局(无子View,不关心)onDraw 实际绘制内容(绘制饼状图)提供接口 提供接口(提供设置数据的接口) 操作类型 API 备注

2017-02-08 11:21:59 225

原创 requestlayout,onlayout,onDraw,invalidate区别与联系

invalidate流程图: 11764 void More ...invalidate(boolean invalidateCache) {11765 invalidateInternal(0, 0, mRight - mLeft, mBottom - mTop, invalidateCache, true);11766 }void More ...invalida

2017-02-06 14:50:59 3019

原创 Android touch事件传递及View的绘制流程

touch事件传递的三个重要方法dispatchTouchEvent(MotionEvent ev)方法用于事件的分发,当事件传递给当前View时,会被调用,返回值受当前View的onTouchEvent和下级View的dispatchTouchEvent方法的影响,表示是否消耗当前事件 /** * ViewGroup * @param ev * @return

2017-02-05 17:16:31 660

原创 Android数据存储方式

一、使用SharedPreferences存储数据默认存储路径:/data/data/<PackageName>/shared_prefsSharedPreferences是一个较轻量级的存储数据的方法,适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。核心原理:保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。通过DDMS的File E

2017-01-23 15:56:35 337

原创 Android四大组件学习之BroadcastReceiver

广播的相关概念BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时

2017-01-23 15:54:57 324

原创 Android四大组件学习之ContentProvider

概念ContentProvider是Android应用对外开放的数据接口,只要符合它所定义的Uri格式的请求,均可以正常访问执行操作。其他的Android应用可以使用ContentResolver对象通过与ContentProvider同名的方法请求执行,被执行的就是ContentProvider中的同名的方法。所以ContentProvider很多对外可以访问的方法,在ContentResolve

2017-01-23 15:53:01 357

原创 Android四大组件学习之Service

Service的基本用法Service概念及用途:A service is an application component that can perform long-running operations in the background and does not provide a user interface。 通常service用来执行一些耗时操作,或者后台执行不提供用户交互界面的操作,

2017-01-23 15:52:02 398

原创 Android四大组件学习之Activity

生命周期onCreate( ): 表示Activity正在被创建,这是生命周期的第一个方法,可以做一些初始化的工作。onRestart( ): 表示Activity正在重新启动,Activity从不可见变为可见状态时,会被调用,比如点击Home键又回到这个Activity时,就会调用onRestart( )。onStart( ): 表示Activity正在被启动,即将开始,这时Activ

2017-01-23 15:50:59 317

原创 设计模式学习

一 工厂模式工厂方法的定义及使用场景工厂模式的通用模式代码二 抽象工厂模式抽象工厂模式 通用模式代码三 单例模式四 Builder建造者模式Builder模式的简单实现五 适配器模式使用场景简单示例适配器模式的优缺点六 代理模式使用场景通用模式代码java动态代理创建对象的过程为如下步骤七 观察者模式使用场景八 策略模式使用场景代码例子一 工厂模式工

2017-01-23 15:49:17 446

原创 掌握android studio项目结构

Android Studio项目结构学习自从ADT停止更新之后,Android Studio已经成为了Android开发最主流的IDE开发工具了,在我们常见的项目结构视图有Project和Android两种,Project结构: 这种视图就是常见的以硬盘目录结构为工程结构。 我们可以将上面的结构分为三部分:外部文件Gradle是Google推荐使用的一套基于Groovy的编译系统脚本, - .

2017-01-23 15:45:43 386

原创 svn和git的入门使用

掌握代码管理工具的使用,svn,git掌握代码管理工具的使用svngitsvn的基本使用一SVN服务器搭建和使用二客户端TortoiseSVN的使用三创建分支合并相互操作Git的基本使用初始化一个Git仓库并提交一个文件修改项目里面的文件并在Git中查看修改状态并更新到仓库中版本的回退撤销修改删除文件github远程仓库的建立及本地创建ssh链接并将代码推送到github仓库

2017-01-23 15:44:55 2643

原创 MarkDown入门与基本语法知识

MarkDown的入门使用及基本语法MarkDown的入门使用及基本语法MarkDown中文版语法说明文档MarkDown的常见的语法规则六类标题可选列表图片与链接字体的粗斜分隔线引用的写法表格快捷键MarkDown中插入图片的几种解决方法解决用Markdown插入代码不换行的问题MarkDown中文版语法说明文档简要快速入门版完整语法版MarkDown的常见的语法规则

2017-01-23 12:39:41 394

空空如也

空空如也

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

TA关注的人

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