- 博客(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 617
原创 UI测量流程
前言 上一篇Activity的生命周期是有系统服务所触发,由系统服务发起handle调用到handleResumeActivity()开始绘制流程然后最终交由ViewRootImpl调用到performTraversals()然后依次之行了我们UI的实际绘制流程measure(测量),layout(布局摆放),Draw(绘制)。在这一篇文章中主要介绍view的测量流程。一 View的测...
2018-06-14 17:05:27 877
原创 Activity启动流程详解
1.Android程序流程众所周知,我们的java程序想要开启需要依赖于main方法,也就是我们的程序入口(主线程)进入,但是在我们日常开发android程序的过程当中我们并没有发现main方法的存在,那么android当中的是如何开始运行的?熟悉的朋友们可能都知道在android当中存在一个叫做ActivityThread的类,这个类代表的是android当中的主线程,而在这个类当中我们看到了比...
2018-06-12 22:52:08 2609
转载 Java 反射 使用总结
反射机制是什么反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。反射机制能做什么反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;...
2018-04-27 14:51:01 393 1
转载 HTTPS协议详解
前言由于前不久苹果公司已经强制IOS应用必须使用HTTPS协议开发,虽然Google没有强制开发者使用HTTPS,但相信不久的将来Android也会跟随IOS全面转向HTTPS。因此,HTTPS的学习也是相当重要。本篇文章涉及到的代码不多,主要内容是对HTTPS协议的讲解,最后将结合Retrofit实现HTTPS的单双向认证。HTTPS概述什么是HTTPS? 我们看维基百科给HTTPS的定义:HT...
2018-04-27 14:32:01 2309
转载 Android 性能优化典范(二)电量优化|网络优化(JobSchedule使用)|图片压缩缓存| StictMode
前言 本文转载于资深工程师胡凯的文章,在此对其表示感谢,在文章学习到很多关于性能优化问题,胡凯的博客主页点击链接,本人转载的目的是为了更加方便学习,在转载的同时本人会对自已认为好的地方进行重点着色,以及添加一些简单示例的实现,对于一些需要更新的在此添加链接关联到最新内容(提示,如果下文有链接字样可以点击跳转到最新内容,省去自己度娘/Goole),对于一些比较懒惰的码友(如本人,嘿嘿)...
2018-04-16 12:22:06 598
转载 Android性能优化典范(一)过度绘制
前言 本文转载于资深工程师胡凯的文章,在此对其表示感谢,在文章学习到很多关于性能优化问题,胡凯的博客主页点击链接,本人转载的目的是为了更加方便学习,在转载的同时本人会对自已认为好的地方进行重点着色,以及添加一些简单示例的实现,对于一些需要更新的在此添加链接关联到最新内容(提示,如果下文有链接字样可以点击跳转到最新内容,省去自己度娘/Goole),对于一些比较懒惰的码友(如本人,嘿嘿)...
2018-04-16 11:18:01 770
原创 Android应用UI性能分析
一 如何对android应用进行内存性能分析? 在使用App时会发现有些界面启动卡顿、动画不流畅、列表等滑动时也会卡顿出现这种情况,可以考虑对UI性能分析。首先要清楚卡顿的原因,有以下几种情况:人为在UI线程中做轻微耗时操作,导致UI线程卡顿;布局Layout过于复杂,无法在16ms内完成渲染;同一时间动画执行的次数过多,导致CPU或GPU负载过重;View过度绘制,导致某些像素在同一帧时...
2018-04-11 16:54:07 500
原创 ThreadPool优化代码
一 new Thread的弊端new Thread的弊端如下: 每次new Thread新建对象性能差。 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。 缺乏更多功能,如定时执行、定期执行、线程中断。 相比new Thread,Java提供的四种线程池的好处在于: 重用存在的线程,减少对象创建、消亡的开销,性能佳。 可有效控制最大并发线程数,提高系统...
2018-04-11 15:37:39 279
原创 布局优化
一 什么是布局优化 布局优化就是减少视图嵌套层级,减少视图层级可以有效的减少内存消耗,因为视图是一个树形结构,每次刷新和渲染都会遍历一次。二 ViewStub标签此标签只会加载一次,加载后会把所有子控件交付给其父控件,自身会移除。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="ht...
2018-04-11 13:21:20 4171
转载 内存泄漏与内存溢出
一 什么是内存泄漏与内存溢出内存泄漏: 在Java中有些对象的生命周期是有限的,当它们完成了特定的逻辑后将会被垃圾回收;但是,如果在对象的生命周期本来该被垃圾回收时这个对象还被别的对象所持有引用,那就可能导致内存泄漏。内存溢出:JVM虚拟机内存耗尽,无法为新对象分配内存,导致APP崩溃。二 内存泄漏与内存溢出之间的关系 例如图片的加载当某个界面存在内存泄露,反复进入该界面,将导致一直有新对象创建...
2018-04-10 18:05:34 340
原创 android 网络请求技术篇
Http封装篇1 App 组件化/模块化之路——如何封装网络请求框架2 深入解析OkHttp33 OKHttp源码分析4 Java线程池ExecutorService5 Volley源码分析
2018-04-03 18:11:50 292
原创 单例模式
一 什么是单例模式 单例模式是Java编程中最常用的设计模式之一,所谓单例就是在JVM(Java虚拟机)中时刻只有一个对象实例存在,那么它的好处也很明显,有如下几点:某些类创建比较频繁,特别是大型的对象,如果使用单例模式,将会大大减少系统的开销;减少New操作,降低系统内存的使用频率,减少GC压力;避免系统混乱,一些类必须使用单例模式,例如控制交易流程的类等。二 单例模式1 饿汉式单例模式...
2018-04-03 15:54:09 229
原创 探索日期对话框(DatePickerDialog)样式使用
前言 最近使用日历,在没有设置样式的情况下,如下图效果是这样的,?完全白花花一片完全找到到按钮在哪里啊,然后就是各种调试~此处略一 AlertDialog 样式 我是知道AlertDialog 有如下样式/** * Special theme constant for {@link #AlertDialog(Context, int)}: use *
2018-03-17 12:08:46 5686
原创 android触发事件传递机制
一 事件传递的三个阶段1 分发(Dispatch):事件的分发对应着dispatchTouchEvent方法,在Android系统中,所有的触摸事件的分发都是由改方法分发。public booleandispatchTouchEvent(MotionEvent event) {..}说明:在这个方法中,当前视图将根据返回值决定是否把这个事件继续传给子视图,如果返回true当
2018-02-01 16:39:01 406
原创 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 2747
原创 架构师成长之路-基于android fragment通信的面向对象的万能接口
前言开发一个app时,常用Activity和Fragment,由于操作方便Fragment越来越受欢迎,这样就避免不了Activity和Fragment、Fragment和Fragment之间的通信,我们知道Fragment和Fragment之间不能直接进行通信的,而是通过Activity进行通信。那么Activity和Fragment有几种通信方式呢,它们的优缺点又是什么?一 常
2018-01-10 17:09:25 1429 3
转载 @RequestMapping 用法详解之地址映射(转)
引言:前段时间项目中用到了RESTful模式来开发程序,但是当用POST、PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为application/json, 而且服务器端通过request.getReader() 打出的数据里确实存在浏览器提交的数据。为了找出原因,便对参数绑定(@RequestParam、 @RequestBody、
2017-12-20 13:56:07 2327
转载 Mybatis最入门---多媒体文件存储
[一步是咫尺,一步即天涯]本文与前文的需求类似,废话不表,开始我们的正文部分吧准备工作:a.操作系统 :win7 x64b.基本软件:MySQL,Mybatis,SQLyog---------------------------------------------------------------------------------------
2017-12-13 16:17:36 812
转载 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 61105 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 950
转载 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 2313
转载 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 55825
转载 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 29493
原创 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 24776
转载 maven项目pom中添加依赖,但是jar无法引入项目
在使用maven管理项目的过程中,经常遇到在pom.xml中添加依赖,但是项目中始终无法引入对应的jar包,这个时候我们可以进行如下操作:(Eclipse)1、project->右击->Maven->Update Project,如此便可解决2、实际使用中,发现eclipse与maven之间并非整合得天衣无缝,有时候eclipse中项目图标经常会莫名其妙的出现一些红叉,以下是一些个人经
2017-11-30 16:43:39 8698
转载 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 1187
原创 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 594
转载 Eclipse安装STS插件两种方式
spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。也就是说,Spring Boot是为了简化Spring开发而生,主要思想是
2017-11-29 14:09:46 27606 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 5833
原创 给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 14299 1
原创 Android XML文件添加空格
name="widget_item_batch_user"> 用车人:说明, 这个就代表着空格,一个 相当于英文的一个字母的占位,两个 相当于一个汉字的占位。
2017-11-01 17:02:56 2407
转载 Android 图片压缩
一 前言 在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩;质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成缩略图。两种方法都实装在了我的项目中,结果却发现在质量压缩的模块中,本来1.9M的图片压缩后反而变成3M多了,很是奇怪,再做了进一步调查终于知道原因了。...
2017-10-31 12:00:11 375
原创 Android studio 创建AIDL
一 前言 用startService,bindService创建的服务只能在本应用程序内访问,如果要使得本程序的服务能够被其他应用程序访问,这时候就要使用远程过程调用(Remote Procedure Call,RPC)方式来实现,安卓定义了一种接口定义语言Android Interface Definition Language,简称AIDL。今天记录一下如何在Andr
2017-10-23 15:35:54 866
原创 Android使用ContentProvider监听数据库
一 前言 在前面的一篇文章《ContentProvider简介》中对ContentProvider及其相关的几个类做了介绍,接下来要做的工作就是搞明白如何给ContentProvider设计监听,如何使用ContentProvider实现对数据库的监听,那么为什么要了解这个东西呢?这个是我曾经去一家公司面试的时候遇到的问题,当时是在聊即时通讯,面试官问道:“群聊储存聊天信息时,
2017-10-21 18:32:01 2687
原创 ContentProvider简介
一 前言 ContentProvider是不同应用程序之间进行数据交换的标准API,ContentProvide以Uri的形式对外提供数据,允许其他应用访问和修改数据;其他应用使用ContentResolve根据Uri进行访问操作指定的数据。 虽然使用其他方法也可以对外共享数 据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要
2017-10-21 14:39:11 14023 1
原创 水平仪
一 原理分析 在前一篇介绍指南针的实现时,详细说明了方向传感器的三个角度值意义,接下来我们使用方向传感器简单实现下水平仪,而实现水平仪是利用方向传感器的第二个和第三个角度值,当手机顶部翘起时,气泡应该向顶部移动,也就是气泡的位置的Y坐标变小;当手机底部翘起时,气泡应该向底部移动,也就是气泡的位置的Y坐标变大;当手机左侧翘起时,气泡应该向左侧移动,也就是气泡的位置的X坐标变小;当手机右侧
2017-10-18 17:18:56 1221
原创 指南针
一 原理分析 移动设备中一般都包括方向传感器,而方向传感器是用于感应设备的摆放状态,方向传感器可以为我们返回三个角度,这样一来就可以知道设备的摆放状态,下面逐一说明下这三个角度:第一个角度:表示手机顶部朝向正北方的夹角。当手机绕着Z轴旋转时,该角度值发生改变。例如当该角度为0时,表明手机顶部朝向正北;该角度为90时,表明手机顶部朝向正东;该角度为180时,表示手机顶部朝向正南
2017-10-18 16:46:12 1106
原创 MediaRecorder之视频录制
一 前言 在前面已经介绍过使用MediaRecorder录制音频,那么录制视频呢?很显然录制视频也需要MediaRecorder,同时需要摄像头Camera(相当于摄像机)。Camera用来取景,然后使用SurfaceView显示影像,那么MediaRecorder用来做录制的工作,接下来就是看看视频的录制的过程。 本篇通过一个示例来认识简单视频的录制的过程,示例说明:通过Came
2017-10-17 11:31:18 1570
原创 MediaPlayer之视频播放
一 前言 在前面已经介绍过使用MediaPlayer播放音频,那么本篇就来看看用它是如何播放视频。二 视频播放 播放视频步骤:(1)创建MediaPlayer对象实例;(2)在界面布局中定义SurfaceView组件,或者在程序中创建SurfaceView对象,给SurfaceView添加callback监听;(3)给MediaPlayer 设置播放
2017-10-14 12:37:59 954
tomcat插件
2017-11-30
decompiler
2017-10-31
ksoap2-android-assembly
2017-09-21
AndroidAnnotations-3.2
2017-08-08
android深入理解卷2
2017-07-03
Android 6.0 运行时权限管理
2016-07-06
AutoCompleteTextView自定义Item的布局
2016-03-31
自定义标签
2016-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人