自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ABang的博客

踏入IT行业,总得留点什么......

  • 博客(245)
  • 资源 (25)
  • 收藏
  • 关注

原创 常用adb命令

连接远程设备adb connect 远程设备IP:端口(一般默认5555)$ adb connect 192.168.100.5555向远处设备推送文件$adb push E:\AndroidProjects\AndroidTVDemo\homePlay\build\outputs\apk\debug\homePlay-debug.apk /data/local/tmp/com....

2018-09-06 17:02:33 573

原创 UI测量流程

前言       上一篇Activity的生命周期是有系统服务所触发,由系统服务发起handle调用到handleResumeActivity()开始绘制流程然后最终交由ViewRootImpl调用到performTraversals()然后依次之行了我们UI的实际绘制流程measure(测量),layout(布局摆放),Draw(绘制)。在这一篇文章中主要介绍view的测量流程。一 View的测...

2018-06-14 17:05:27 827

原创 Activity启动流程详解

1.Android程序流程众所周知,我们的java程序想要开启需要依赖于main方法,也就是我们的程序入口(主线程)进入,但是在我们日常开发android程序的过程当中我们并没有发现main方法的存在,那么android当中的是如何开始运行的?熟悉的朋友们可能都知道在android当中存在一个叫做ActivityThread的类,这个类代表的是android当中的主线程,而在这个类当中我们看到了比...

2018-06-12 22:52:08 2509

转载 Java 反射 使用总结

反射机制是什么反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。反射机制能做什么反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;...

2018-04-27 14:51:01 370 1

转载 HTTPS协议详解

前言由于前不久苹果公司已经强制IOS应用必须使用HTTPS协议开发,虽然Google没有强制开发者使用HTTPS,但相信不久的将来Android也会跟随IOS全面转向HTTPS。因此,HTTPS的学习也是相当重要。本篇文章涉及到的代码不多,主要内容是对HTTPS协议的讲解,最后将结合Retrofit实现HTTPS的单双向认证。HTTPS概述什么是HTTPS? 我们看维基百科给HTTPS的定义:HT...

2018-04-27 14:32:01 2225

转载 Android 性能优化典范(二)电量优化|网络优化(JobSchedule使用)|图片压缩缓存| StictMode

前言        本文转载于资深工程师胡凯的文章,在此对其表示感谢,在文章学习到很多关于性能优化问题,胡凯的博客主页点击链接,本人转载的目的是为了更加方便学习,在转载的同时本人会对自已认为好的地方进行重点着色,以及添加一些简单示例的实现,对于一些需要更新的在此添加链接关联到最新内容(提示,如果下文有链接字样可以点击跳转到最新内容,省去自己度娘/Goole),对于一些比较懒惰的码友(如本人,嘿嘿)...

2018-04-16 12:22:06 553

转载 Android性能优化典范(一)过度绘制

前言        本文转载于资深工程师胡凯的文章,在此对其表示感谢,在文章学习到很多关于性能优化问题,胡凯的博客主页点击链接,本人转载的目的是为了更加方便学习,在转载的同时本人会对自已认为好的地方进行重点着色,以及添加一些简单示例的实现,对于一些需要更新的在此添加链接关联到最新内容(提示,如果下文有链接字样可以点击跳转到最新内容,省去自己度娘/Goole),对于一些比较懒惰的码友(如本人,嘿嘿)...

2018-04-16 11:18:01 733

原创 Android应用UI性能分析

一 如何对android应用进行内存性能分析?     在使用App时会发现有些界面启动卡顿、动画不流畅、列表等滑动时也会卡顿出现这种情况,可以考虑对UI性能分析。首先要清楚卡顿的原因,有以下几种情况:人为在UI线程中做轻微耗时操作,导致UI线程卡顿;布局Layout过于复杂,无法在16ms内完成渲染;同一时间动画执行的次数过多,导致CPU或GPU负载过重;View过度绘制,导致某些像素在同一帧时...

2018-04-11 16:54:07 476

原创 ThreadPool优化代码

一  new Thread的弊端new Thread的弊端如下: 每次new Thread新建对象性能差。 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。 缺乏更多功能,如定时执行、定期执行、线程中断。 相比new Thread,Java提供的四种线程池的好处在于: 重用存在的线程,减少对象创建、消亡的开销,性能佳。 可有效控制最大并发线程数,提高系统...

2018-04-11 15:37:39 257

原创 布局优化

一 什么是布局优化       布局优化就是减少视图嵌套层级,减少视图层级可以有效的减少内存消耗,因为视图是一个树形结构,每次刷新和渲染都会遍历一次。二 ViewStub标签此标签只会加载一次,加载后会把所有子控件交付给其父控件,自身会移除。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="ht...

2018-04-11 13:21:20 3856

转载 内存泄漏与内存溢出

一 什么是内存泄漏与内存溢出内存泄漏: 在Java中有些对象的生命周期是有限的,当它们完成了特定的逻辑后将会被垃圾回收;但是,如果在对象的生命周期本来该被垃圾回收时这个对象还被别的对象所持有引用,那就可能导致内存泄漏。内存溢出:JVM虚拟机内存耗尽,无法为新对象分配内存,导致APP崩溃。二 内存泄漏与内存溢出之间的关系  例如图片的加载当某个界面存在内存泄露,反复进入该界面,将导致一直有新对象创建...

2018-04-10 18:05:34 314

原创 android 网络请求技术篇

Http封装篇1 App 组件化/模块化之路——如何封装网络请求框架2 深入解析OkHttp33 OKHttp源码分析4 Java线程池ExecutorService5 Volley源码分析

2018-04-03 18:11:50 265

原创 单例模式

一 什么是单例模式     单例模式是Java编程中最常用的设计模式之一,所谓单例就是在JVM(Java虚拟机)中时刻只有一个对象实例存在,那么它的好处也很明显,有如下几点:某些类创建比较频繁,特别是大型的对象,如果使用单例模式,将会大大减少系统的开销;减少New操作,降低系统内存的使用频率,减少GC压力;避免系统混乱,一些类必须使用单例模式,例如控制交易流程的类等。二 单例模式1 饿汉式单例模式...

2018-04-03 15:54:09 207

原创 探索日期对话框(DatePickerDialog)样式使用

前言      最近使用日历,在没有设置样式的情况下,如下图效果是这样的,?完全白花花一片完全找到到按钮在哪里啊,然后就是各种调试~此处略一 AlertDialog 样式    我是知道AlertDialog 有如下样式/** * Special theme constant for {@link #AlertDialog(Context, int)}: use *

2018-03-17 12:08:46 5615

原创 android触发事件传递机制

一 事件传递的三个阶段1 分发(Dispatch):事件的分发对应着dispatchTouchEvent方法,在Android系统中,所有的触摸事件的分发都是由改方法分发。public booleandispatchTouchEvent(MotionEvent event) {..}说明:在这个方法中,当前视图将根据返回值决定是否把这个事件继续传给子视图,如果返回true当

2018-02-01 16:39:01 368

原创 fastjson混淆应注意的事项

一添加依赖包fastjson的jar下载地址:http://mvnrepository.com/artifact/com.alibaba/fastjson/1.1.45.android或者:compile 'com.alibaba:fastjson:1.1.45.android'二 混淆1 忽略fastjosn-dontwarn com.alibaba.

2018-01-24 16:21:37 2597

原创 架构师成长之路-基于android fragment通信的面向对象的万能接口

前言开发一个app时,常用Activity和Fragment,由于操作方便Fragment越来越受欢迎,这样就避免不了Activity和Fragment、Fragment和Fragment之间的通信,我们知道Fragment和Fragment之间不能直接进行通信的,而是通过Activity进行通信。那么Activity和Fragment有几种通信方式呢,它们的优缺点又是什么?一 常

2018-01-10 17:09:25 1399 3

转载 @RequestMapping 用法详解之地址映射(转)

引言:前段时间项目中用到了RESTful模式来开发程序,但是当用POST、PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为application/json, 而且服务器端通过request.getReader() 打出的数据里确实存在浏览器提交的数据。为了找出原因,便对参数绑定(@RequestParam、 @RequestBody、

2017-12-20 13:56:07 2305

转载 Mybatis最入门---多媒体文件存储

[一步是咫尺,一步即天涯]本文与前文的需求类似,废话不表,开始我们的正文部分吧准备工作:a.操作系统 :win7 x64b.基本软件:MySQL,Mybatis,SQLyog---------------------------------------------------------------------------------------

2017-12-13 16:17:36 772

转载 mybatis 批量更新update详解

1  更新单条记录 UPDATE course SET name = 'course1' WHERE id = 'id1';2  更新多条记录的同一个字段为同一个值 UPDATEcourseSETname='course1'WHEREidin('id1','id2','id3);3  更新多条记录为多个字段为不同的值

2017-12-09 14:06:07 60504 6

原创 JDBC往MySql数据库中写汉字出现乱码的问题

一 情况描述:我的情况是这样,首先我的项目的编码格式是UTF-8,客户端请求时的编码也是UTF-8,在项目配置文件的数据库路径也设置了UTF-8格式编码,如下:spring.datasource.url=jdbc:mysql://192.168.11.139/samp_db?useUnicode=true&AutoReconnect=true&characterEncodi

2017-12-05 16:59:01 897

转载 Spring Boot 连接MySql数据库

Spring Boot 以后也许会成为入门Spring的首选!记一下Spring Boot 成功连接Mysql数据库的方法步骤!一、新建Maven工程,不全Maven所需文件夹,在pom.xml引入SpringBoot的依赖包!可以参照:http://www.cnblogs.com/liangblog/p/5207855.html二、有两种方法与数据库建立连接,一种是集成M

2017-12-04 15:41:26 2263

转载 MySql数据库拒绝访问解决办法

远程mysql_java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect操作步骤也是很简单的:1 进入你的数据库$ /usr/local/mysql/bin/mysql -u root -p按Ener,输入你的密码2 成功进入之后依次操作mysql>

2017-12-04 15:38:16 55494

转载 Mac上安装MySQL服务与创建数据库

1.安装MySQL (免费)官网现下载地址 http://dev.mysql.com/downloads/mysql/   (我选的mysql-5.7.17-macos10.12-x86_64.dmg)点击download 会跳转到另外一个界面,这个界面是提示你需不需要注册的,直接选择最下面的“No thanks,just take me to downloads!”即开始下载

2017-12-04 10:17:47 29130

原创 Eclipse安装Maven(m2eclipse)插件两种方式

方式一Eclipse Marketplace:1. 安装m2eclipse插件    要用Eclipse构建Maven项目,我们需要先安装meeclipse插件    点击eclipse菜单栏Help->Eclipse Marketplace搜索到插件Maven Integration for Eclipse 并点击安装即可,如下图: 安装成成之后我们在Ecli

2017-12-01 14:27:22 24403

转载 maven项目pom中添加依赖,但是jar无法引入项目

在使用maven管理项目的过程中,经常遇到在pom.xml中添加依赖,但是项目中始终无法引入对应的jar包,这个时候我们可以进行如下操作:(Eclipse)1、project->右击->Maven->Update Project,如此便可解决2、实际使用中,发现eclipse与maven之间并非整合得天衣无缝,有时候eclipse中项目图标经常会莫名其妙的出现一些红叉,以下是一些个人经

2017-11-30 16:43:39 8633

转载 mac之tomcat安装启动配置

一:下载打开Apache Tomcat官网,选择需要的版本下载:http://tomcat.apache.org/download-70.cgi二:存放到本地文件夹重名民为ApacheTomcat,放到/Users/计算机名/Library/目录下三:启动Tomcat打开Terminal,进入ApacheTomcat所在目录的bin目录下$:cd /Us

2017-11-30 16:22:38 1154

原创 eclipse创建maven项目,提示错误“Could not resolve archetype org.apache.maven.archetypes .”

1:在eclipse中新建maven项目,提示错误2:打开cmd运行mvn install:install-file -DgroupId=org.apache.maven.archetypes -DartifactId=maven-archetype-quickstart -Dversion=1.1 -Dpackaging=jar -Dfile=maven-archetype-quicksta

2017-11-30 12:14:19 567

转载 Eclipse安装STS插件两种方式

spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。也就是说,Spring Boot是为了简化Spring开发而生,主要思想是

2017-11-29 14:09:46 27374 1

原创 Android调用腾讯地图app导航

一 判断是否安装腾讯地图apppublic static boolean isInstalled() { return new File("/data/data/com.tencent.map").exists();}二 编辑路线进行导航/** 腾讯地图 Uri 标识*/public final static String BASE_URL = "qqmap

2017-11-10 09:47:07 5761

原创 给Activity设置背景(半)透明

一 网上推荐方法1 设置样式Theme.Translucent可用的样式有:@android:style/Theme.Translucent@android:style/Theme.Translucent.NoTitleBar@android:style/Theme.Translucent.NoTitleBar.Fullscreen注意:如果直接使用了,你的程序也许会直接崩溃!原因

2017-11-02 17:15:41 14096 1

原创 Android XML文件添加空格

name="widget_item_batch_user">    用车人:说明,  这个就代表着空格,一个 相当于英文的一个字母的占位,两个 相当于一个汉字的占位。

2017-11-01 17:02:56 2343

转载 Android 图片压缩

一 前言        在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩;质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成缩略图。两种方法都实装在了我的项目中,结果却发现在质量压缩的模块中,本来1.9M的图片压缩后反而变成3M多了,很是奇怪,再做了进一步调查终于知道原因了。...

2017-10-31 12:00:11 351

原创 Android studio 创建AIDL

一  前言       用startService,bindService创建的服务只能在本应用程序内访问,如果要使得本程序的服务能够被其他应用程序访问,这时候就要使用远程过程调用(Remote Procedure Call,RPC)方式来实现,安卓定义了一种接口定义语言Android Interface Definition Language,简称AIDL。今天记录一下如何在Andr

2017-10-23 15:35:54 707

原创 Android使用ContentProvider监听数据库

一 前言         在前面的一篇文章《ContentProvider简介》中对ContentProvider及其相关的几个类做了介绍,接下来要做的工作就是搞明白如何给ContentProvider设计监听,如何使用ContentProvider实现对数据库的监听,那么为什么要了解这个东西呢?这个是我曾经去一家公司面试的时候遇到的问题,当时是在聊即时通讯,面试官问道:“群聊储存聊天信息时,

2017-10-21 18:32:01 2527

原创 ContentProvider简介

一  前言       ContentProvider是不同应用程序之间进行数据交换的标准API,ContentProvide以Uri的形式对外提供数据,允许其他应用访问和修改数据;其他应用使用ContentResolve根据Uri进行访问操作指定的数据。        虽然使用其他方法也可以对外共享数 据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要

2017-10-21 14:39:11 13938 1

原创 水平仪

一 原理分析     在前一篇介绍指南针的实现时,详细说明了方向传感器的三个角度值意义,接下来我们使用方向传感器简单实现下水平仪,而实现水平仪是利用方向传感器的第二个和第三个角度值,当手机顶部翘起时,气泡应该向顶部移动,也就是气泡的位置的Y坐标变小;当手机底部翘起时,气泡应该向底部移动,也就是气泡的位置的Y坐标变大;当手机左侧翘起时,气泡应该向左侧移动,也就是气泡的位置的X坐标变小;当手机右侧

2017-10-18 17:18:56 1014

原创 指南针

一 原理分析      移动设备中一般都包括方向传感器,而方向传感器是用于感应设备的摆放状态,方向传感器可以为我们返回三个角度,这样一来就可以知道设备的摆放状态,下面逐一说明下这三个角度:第一个角度:表示手机顶部朝向正北方的夹角。当手机绕着Z轴旋转时,该角度值发生改变。例如当该角度为0时,表明手机顶部朝向正北;该角度为90时,表明手机顶部朝向正东;该角度为180时,表示手机顶部朝向正南

2017-10-18 16:46:12 1025

原创 MediaRecorder之视频录制

一 前言   在前面已经介绍过使用MediaRecorder录制音频,那么录制视频呢?很显然录制视频也需要MediaRecorder,同时需要摄像头Camera(相当于摄像机)。Camera用来取景,然后使用SurfaceView显示影像,那么MediaRecorder用来做录制的工作,接下来就是看看视频的录制的过程。   本篇通过一个示例来认识简单视频的录制的过程,示例说明:通过Came

2017-10-17 11:31:18 1479

原创 MediaPlayer之视频播放

一 前言      在前面已经介绍过使用MediaPlayer播放音频,那么本篇就来看看用它是如何播放视频。二 视频播放      播放视频步骤:(1)创建MediaPlayer对象实例;(2)在界面布局中定义SurfaceView组件,或者在程序中创建SurfaceView对象,给SurfaceView添加callback监听;(3)给MediaPlayer 设置播放

2017-10-14 12:37:59 908

tomcat插件

http://www.eclipsetotale.com/tomcatPlugin.html#A3 上面的插件不支持MAC上为Eclipse4.7(Oxygen)安装tomcat插件

2017-11-30

decompiler

AndroidCrackTool、dex2jar,文档说明http://note.youdao.com/noteshare?id=8267d97330079e5b67a42d36be2b0d06

2017-10-31

ksoap2-android-assembly

3.5版本ksoap2,ksoap2-android-assembly-3.5.0-jar-with-dependencies Android webservice支持包 直接放置libs可用

2017-09-21

AndroidAnnotations-3.2

AndroidAnnotations包要放到app/compile-libs(要自己建立该目录)下(可以不使用),AndroidAnnotations-api该包要放到app/libs。

2017-08-08

ImageLoader

图片加载工具包

2017-08-07

android深入理解卷1

android深入理解卷1

2017-07-03

android深入理解卷2

深入理解SystemServer、PackManagerService、PowerManagerService、ActivityService、ContentProvider等

2017-07-03

SystemServiceRegistry源码

SystemServiceRegistry源码

2017-06-30

Session源码

方便于找不到Session源码的同胞们!

2017-06-30

FindBugs工具

FindBugs

2017-06-27

BluetoothPrinter

使用蓝牙通信,实现便携式打印机文本打印。

2017-06-05

mac安卓链接工具

mac本和安卓系统手机连接工具

2016-10-17

左右侧滑可删除的ListView

实现工具Android studio , 可以添加左右侧滑删除、分享按钮的ListView

2016-08-29

类似ios进度条提示框

类似ios进度条提示框,as代码示例

2016-08-25

Android 6.0 运行时权限管理

实现工具Android studio ,Android 6.0在我们原有的AndroidManifest.xml声明权限的基础上,又新增了运行时权限动态检测,以下权限都需要在运行时判断:身体传感器、日历、摄像头、通讯录、地理位置、麦克风、电话、短信、存储空间,这里简单的写了案例!

2016-07-06

AutoCompleteTextView自定义Item的布局

实现工具Android studio,一般AutoCompleteTextView提示语列表的适配器只能系统提供的ArrayAdapter等,这里自定义适配器继承了BaseAdapter。

2016-03-31

高德关键字搜索

实现工具Android studio ,根据官网实现的,下载可以运行。

2016-03-09

类似ios滑动开关

实现工具Android studio ,开关有两种类型:矩形滑动开关,圆形滑动开关,可以通过自定义的属性值来设置,同样可以通过属性值来设置开关颜色等。

2016-03-08

自定义标签

Android,实现工具类Android studio,有单行显示、多行显示两种模式,代码有详细注释,参考于:https://github.com/kingideayou/TagCloudView

2016-03-07

FloatingWindow

悬浮窗口可以滑动、点击,实现工具Android studio 1.4

2016-03-04

自定义对话框

有时候,对于弹出框需要自定义,这里使用Android studio 简单的写个实例,仅供参考!

2016-03-01

日历选择器类似IOS

使用工具Android studio,类似IOS滚动选择日期,有四种选择模式,年月日时分,年月日,时分,月日时分。

2016-02-29

TabLayout和ViewPager实现Tabs切换

使用TabLayout和ViewPager实现Tabs切换使用起来很方便。

2016-01-25

TabsViewPager

使用TabLayout和RecyclerView来实现!

2016-01-25

android_手机本地视频列表

获取本地视频使用GridView展示出来,使用自定义VideoView播放视频

2016-01-21

空空如也

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

TA关注的人

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