- 博客(39)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
原创 Android事件分发-总结
android中的事件处理方式:① 事件传递,由外层向内层隧道式传递② 事件相应,由内层向外层冒泡处理android中一个完整的事件是由ACTION_DOWN到ACTION_UPAndroid 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent e...
2019-03-20 13:39:02
248
转载 android gradle依赖:implementation 和compile的区别
转载:https://www.jianshu.com/p/f34c179bc9d02017 年google 后,Android studio版本更新至3.0,更新中,连带着com.android.tools.build:gradle 工具也升级到了3.0.0,在3.0.0中使用了最新的Gralde 4.0 里程碑版本作为gradle的编译版本,该版本gradle编译速度有所加速,更加欣喜的是...
2019-03-06 15:39:44
480
原创 总结--Android四大组件的工作过程(写了一个)
首先几个类说明:TaskRecord:启动的Activity所在的栈ProcessRecord:描述一个应用程序进程ActivityRecord:描述一个Activity,记录一个Activity的所有信息ServiceRecord:描述一个Service,记录一个Service的所有信息LoadedAPK:描述已加载的APK文件,可以获取到packageInfo,等信息(清单...
2019-02-15 19:46:30
423
原创 总结--应用程序进程启动过程
首先要想启动一个应用程序,要保证这个应用程序锁需要的应用进程已经启动。Zygote的java框架层中会创建一个Server端的Socket,这个Socket用来等待AMS请求Zygote来创建新的应用程序进程,Zygote通过fock自身创建应用程序进程,这样应用程序进程就会获得Zygote进程再启动时创建的虚拟机实例,除了获取虚拟机实例外,还创建了Binder线程池和消息循环,这样运行在应用...
2019-02-15 19:13:01
699
原创 Android系统启动流程
在此说明,此文章只是个人的一个关于“Android系统启动流程”的一个总结,没什么源码。Android系统启动流程:1、启动电源以及系统启动:当电源键按下时引导芯片代码从预定义的地方(固化在ROM)开始执行。加载引导程序BootLoader到RAM中,然后执行。2、引导程序BootLoader:引导程序BootLoader是在Android操作系统开始运行前的一个小程序,它的主...
2019-02-12 17:35:34
23358
7
原创 Android 查看源码的方式
在线源码查看网站:http://www.grepcode.com、http://androidxref.com、https://www.androidos.net.cn源码下载地址:https://pan.baidu.com/s/1iVtXKj773oqDH6eCckFyTQ本地源码查看工具:Android Studio、Eclipse、Sublime、Source InsightSo...
2019-02-11 09:29:07
210
原创 java中的各种同步方法--syncharonized、Lock、Volatile、原子变量(Android通用)
在大多数实际的多线程应用中,两个或两个以上的线程需要共享对同一数据的存取时,这时往往我们为了保证数据的正确性、甚至不发生异常需要对相关的数据进行加锁处理。我们首先看一个例子:有一个银行,里面有一百个账户,每一个账户里面有1000块钱,100个账户总共是100000元,每一个账户都有自己一个独立的进程,现在我们让每一个账户都不停的向其他的账户转入随机的金额。代码如下:public clas...
2019-02-02 10:14:11
815
原创 Activity中的onSaveInstanceState()、onRestoreInstanceState()源码实现
一、作用Activity中的onSaveInstanceState()、onRestoreInstanceState()两个方法是用于保存Activity中的状态的。当Activity不是正常方式退出,且Activity在随后的时间内被系统杀死之前会调用者两个方法让开发人员可以有机会存储Activity相关的信息,并且在下次返回Activity时恢复这些数据。二、触发时机onSaveI...
2019-01-31 18:01:36
523
原创 java反射举例---通过反射获取类、方法、属性、类中类
本文通过一个小例子来简单记录下如何使用java反射:例子作用:获取Android有线网络下的网络信息,适用于Android5.0以上(机顶盒上有有线连接):先上代码吧:public void getEthernet(Context context){ try{ //根据反射获取到隐藏类 Class ethernetMan...
2018-10-24 17:28:37
8696
原创 Android 官方架构组件--ROOM 数据库操作简单介绍
本文只是简单的介绍一下怎么在我们的项目中使用ROOM和一个简单的小例子。 ROOM是Google官方推出的一个持久性数据库,Room持久性库提供了SQLite的抽象层,以便在充分利用SQLite的同时允许流畅的数据库访问。 ROOM的引用:compile "android.arch.persistence.room:runtime:1.0.0"...
2018-10-23 15:52:08
1000
原创 AS build失败:Failed to complete gradle execution
打开 File — Project Structure — SDK location:在Use embedded JDK(recommended)前打钩,再次运行,即可
2018-10-22 10:05:36
313
转载 每天一个linux命令目录
注:转载目录:https://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每天一个linux命令。学习的主要参考资料为: 1.《鸟哥的linux私房菜》 2.http://codingstandards.iteye.com/blog/78665...
2018-10-19 14:22:41
141
原创 Android 架构组件——Lifecycle
首先介绍一下,这个架构是google官方推出的,主要也是为了代码规范,这个架构主要分为三个部分:Lifecycle、LiveData和ViewModle 共同组成了MVVM的模式。个人感觉其实和我们大家使用的MVP架构是一样的,不过在MVP的基础上又优化了一些,既然是官方推的,还是建议能使用的就使用吧。 首先首先LifeCycle,Lifecycle组件包括Lifec...
2018-09-30 13:57:36
306
原创 Android巧妙调用那些系统级的API(比如那些只有system进程root进程才能调用的API)
首先说下系统/system/framework这个目录,这个目录里面存放的就是Android系统java源码,里面是大量的jar包,具体每个jar包是负责那一块的内容请参考:https://blog.csdn.net/wangrengxing/article/details/38847225其实系统的那些方法都是在:/system/framework下的某一个jar包中定义的,我们最终也是调用...
2018-08-31 16:28:40
8101
5
原创 Android 根据包名获取应用的ROM占用大小,应用安装大小、缓存大小、数据大小等等
获取第三方应用rom大小,主要是通过系统接口IPackageStatsObserver和PackageStats来获取的,而这两个文件我们是直接访问不到的。这边是通过ADIL的方式来调用的。1、创建两个AIDL文件IPackageStatsObserver和PackageStats,要求包名和sdk中本身文件的包名必须一致。包名为:android.content.pm创建目录为上图...
2018-08-23 16:47:28
3263
转载 正则表达式验证工具类RegexUtils.java
注:转载地址:https://www.jb51.net/article/96328.htmJava 表单注册常用正则表达式验证工具类,常用正则表达式大集合。1. 电话号码2. 邮编3. QQ4. E-mail5. 手机号码6. URL7. 是否为数字8. 是否为中文9. 身份证10. 域名11. IP 。。。。常用验证应有尽有! 这的确是您从事 ...
2018-08-20 16:45:57
380
原创 Windows(10)下安装MySql(8.0.12)
注:参考文章:https://blog.csdn.net/weixin_40396510/article/details/792777311、下载Mysql:官网地址:https://dev.mysql.com/downloads/mysql/拉到界面最下方,点击对应的版本进行下载:(注:需要有oracle账号的)2、解压。下载完成后,本地解压:文件夹如下:然后再根目录下创...
2018-08-14 13:26:22
1535
原创 Android设计模式之代理模式
1、代理模式定义:对象A通过对象B来达到访问对象C的目的,那么这个对象B就是一个代理。2、代理模式的UML类图:其中client实现了我们的接口Subject,ReadSubject为我们的真实对象,ProxySubject为代理对象,里面包含一个真实对象的实例。public interface Subject { /** * 接口方法 */ ...
2018-08-13 14:26:25
235
原创 java-多线程同时操作同一个对象之解决方法:读写锁ReadWriteLock的使用
说明一下,这边文章写得比较简单,只涉及到ReadWriteLock的使用,具体源码实现原理并不涉及。1、使用场景: 首先我这边是实际开发中使用到了,开发的环境情况为:有一个数据中心(暂且当做一个Map集合),有两个子线程A、B,其中A线程每5秒钟从其他地方获取到新来的数据然后和数据中心里面的数据进行一个融合,然后B线程进行隔5分钟从数据中心取出Map集合并解析其中的数据...
2018-08-10 14:51:16
9322
原创 Android获取局域网网关地址(也就是我们说的网关地址),包括各种网络连接方式
1、WIFI情况下获取网关:这种情况很简单,也就是通过DhcpInfo直接获取WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);DhcpInfo info=wifiManager..getDhcpInfo();int gateway=info.gateway...
2018-07-30 15:16:03
6128
1
原创 Android获取路由网关(上联设备)MAC地址
我这边直接贴代码吧,里面有一些注释:具体的我就不解释了,但是这种方式我本地测试过,是准确的,包括有线和无线的连接方式,具体里面的一些之类和文件的含义,可以自己百度下。 /** * 获取路由器MAC地址 * @return */ public String getGatewayMac() { String str ="";...
2018-07-30 14:59:36
4302
2
原创 Android使用Handler实现子线程与子线程、主线程之间通信
今天这篇文章只讲一下怎么使用Handler实现子线程与子线程之间、子线程与主线程之间如何进行通信,关于具体的内部实现因为我也没研究过,所以这篇文章讲不了。一、子线程向主线程传值:这个实现比较简单,因为主线程自带Looper机制,所有我们不用创建Looper了,看一下代码吧:首选在主线程里创建一个Handler1.Handler mHandler = new Handler(){ 2. 3.
2017-01-15 14:13:57
25094
12
原创 Fragment系列解析之三---Fragment和Fragment、Activity之间传值
今天这篇文章我们来聊一下和Fragment有关的传值。 1、先来说一下Fragment和Fragment之间是怎么传值得吧。一、 在Fragment的宿主Activity创建一个变量,然后给它设置set和get方法,然后我们可以在Fragment中取出此值,也可以改变此值。 这种方法一般是用在要传的值比较简单,或者内容单一的话。二、在Fragment的宿主Activity里定义一个方法用来判断
2017-01-14 22:43:11
498
原创 Process子进程和主进程间互传信息--及遇到的问题解决
最近公司新上了一个自动化测试的项目,需要在我们的App里面开启一个进程去调用测试的App,在这工程中,主进程可能随时向子进程发送一些命令,而子进程在测试完成后也要把结果返回给子进程,因为本人以前对Process相当陌生,所以写的过程出现各种问题,而且发生网上的一些解决方法对自己也并不适用,所以就写了这篇文章。我们先来看一下怎么启动一个子进程。process = Runtime.getRuntim
2017-01-14 10:34:38
2597
原创 面向对象的六大原则
还记得我刚开始接触java的时候,刚一开始学感觉还挺简单,什么if啊变量、常量啊等基础知识,感觉还挺好理解,但是当开始接触面向对象这个思想的时候,顿时就蒙了,当时脑子里转不过圈,无法理解这种思维,懵懵懂懂的接触了一两个月,反过来再一想时,自己才有自己的理解,对面向对象也是开始慢慢的明白了。好了这篇文章就简单介绍一下**面向对象中的六大原则**:**一、优化代码的第一步————单一职责原则:**单一
2017-01-07 19:27:55
341
原创 Android之SurfaceView讲解
一、SurfaceView与View的区别 首先我们了解下view的绘图机制,View是通过刷新来重绘视图,Android系统通过发出VSYNC信号来进行屏幕的重绘,刷新的间隔时间为16ms。如果再16ms内View完成了你所需要执行的所有操作,那么用户在视觉上,就不会产生卡顿的感觉;而如果执行的操作逻辑太多,需要频繁的刷新界面的时候,就会不断地阻塞主线程,从而导致画面卡顿。这时候就用到了
2017-01-01 13:19:57
465
原创 Android设计模式之策略模式
作为一个菜鸟,每次自己写完代码后,回头一看发现自己的代码实在太乱了,不仅阅读起来很困难,而且以后改逻辑的话改起来也特别的麻烦,所以买了一本设计模式的书,自己没事就看看,最近看到了策略模式,所以就想写一写,若是写的不好还望大家见谅。 一、策略模式的定义: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以互相替换。策略模式让算法独立于使用它的客户而独立变化。 二、策略模式的使用
2016-12-29 23:01:22
268
原创 小米5之Root攻略
这两天公司下来了两个新的小米5,领导说让我Root一下,本人以前从没Root过手机,也没了解过类似的东西,不过既然说了让我弄,自己就要想办法弄成 ,然后便开发网上搜资料了,最终是成功的Root成功了,下面将我Root过程中的步骤写一下,大家如果有类似需要的话可以参考一下。 一、小米手机Root第一步:解锁 解锁网站:http://www.miui.com/unlock/,这里我们首先需要一个小米
2016-12-28 12:54:00
5931
原创 Fragment的系列解析之-------Fragment、FragmentManager、FragmentTransaction中的方法
一、Fragment对象1.void setArguments(Bundle args); 这个函数为Fragment提供构造参数(也就是数据),参数以Bundle类型封装。因为官方不建议把数据的传递提供写在构造函数当中,因此提供了这个方法。2.Bundle getArguments(); 通过这个函数可以获取到传递给Fragment的参数。可以再Fragment当中直接调用,获取传递的数据。3.F
2016-12-18 22:41:15
1306
原创 Fragment的系列解析之二 Fragment管理中有关的那些方法及区别
上一篇中简单介绍了Fragment的一些基础信息,这一篇我们就来讲讲Fragment管理中的那些方法,如:add,replace,remove,hide,show,回退栈等:Add(): 在我们动态的添加、管理Fragment中,Add属于最基础的方法了,用法也很简单,如下就是向Activity添加一个Fragment: getSupportFragmentManager().beginTran
2016-12-18 22:28:20
328
原创 Fragment的系列解析之一 Fragment的产生,生命周期及使用
从今天起我将开始写一系列的Fragment文章,因为个人以前没怎么写过博客,所以写的比较慢,同时会有一些格式上或者内容的不好之处,还望大家见谅。下面简单介绍下这一系列文章将讲解的内容:Fragment的产生及优点; Fragment和Activity的生命周期关系; Fragment的使用:静态与动态; Fragment的方法的一一讲解与比较,包括回退栈; Fragment与Activity
2016-12-17 12:07:02
310
原创 Android自动化测试UiAutomator之环境配置
(1)首先就是配置环境了:配置jdk和sdk的环境变量,这我就不写了,网上一搜一大堆,这里sdk除了配置sdk/tools目录外,还应配置sdk/platform-tools这个目录,我这是除了创建SDK_HOME变量外,又单独创建了一个android变量: 然后配置ANT_HOME变量,如果没有ant工具的,文章下面会有链接,如下图: 然后把android和ANT_HOME两个变量添加到pa
2016-12-14 13:01:58
578
原创 Android获取Apk包名和启动的Activity
在我们的开发业余时候,有可能会用到一个APK的包名和启动Activity。 Android根据Apk获取包名和启动Activity的方法有几种,下面简单介绍两种: 1:根据re-sign.jar工具,也就是我们平时用的apk重签名工具, 首先:肯定是下载jar包了,如果你没有的话。 其次:将re-sign.jar放入到我们的sdk的tools文件夹下,如下图: 此时
2016-12-08 12:53:49
2994
原创 调用系统相机拍照、调用相册、调用系统录像并获取缩略图
第一次写博客,可能写的不太好,望各位IT人士包涵。 这里介绍了如何调用系统拍照并返回、调用系统相册选取图片并返回、调用系统相机录像并获取缩略图。 注:TAKE_PICTURE、CHOOSE_PICTURE、TAKE_VEDIO均为自定义的常量,用于拍照成功、选取图片成功、录像成功返回标识
2016-04-13 09:36:28
1003
1
翻译 bitmap的二次采样
Bitmap二次采样一、二次采样:(一)、意义或目的: 1、用BitmapFactory解码一张图片时,有时会遇到该错误。这往往是由于图片过大造成的。要想正常使用,则需要分配更少的内存空间来存储。BitmapFactory.decodeFile(imageFile);2、BitmapFactory.Options.inSampleSize:设置恰当的in
2016-03-15 18:31:38
302
odex文件反编译---smail.jar和oa2dex.jar
2018-10-12
Android获取第三方应用的占用大小,包括缓存、数据、应用大小
2018-08-14
IPackageStatsObserver.aidl和PackageStats.aidl
2018-08-14
微信小程序开发工具——windows64位
2016-10-08
Android基于环信的即时通讯demo
2016-09-22
Android v4,v7,v11等jar包
2016-09-13
仿微信选取多张图片(根据鸿洋大神的课程敲的)
2016-09-07
Android各种动画源码
2016-08-08
Android自动化测试,如何测试webView界面,可跨进程,可脱离电脑
2017-03-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人