![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 73
shaoenxiao
换行
展开
-
使用RadioGroup实现底部导航栏效果,不需要java代码。
使用RadioGroup实现底部导航栏效果,不需要java代码。原创 2016-05-04 16:16:18 · 847 阅读 · 0 评论 -
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 · 6117 阅读 · 1 评论 -
Android 根据包名获取应用的ROM占用大小,应用安装大小、缓存大小、数据大小等等
获取第三方应用rom大小,主要是通过系统接口IPackageStatsObserver和PackageStats来获取的,而这两个文件我们是直接访问不到的。这边是通过ADIL的方式来调用的。1、创建两个AIDL文件IPackageStatsObserver和PackageStats,要求包名和sdk中本身文件的包名必须一致。包名为:android.content.pm创建目录为上图...原创 2018-08-23 16:47:28 · 3261 阅读 · 0 评论 -
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 · 8089 阅读 · 5 评论 -
Android 架构组件——Lifecycle
首先介绍一下,这个架构是google官方推出的,主要也是为了代码规范,这个架构主要分为三个部分:Lifecycle、LiveData和ViewModle 共同组成了MVVM的模式。个人感觉其实和我们大家使用的MVP架构是一样的,不过在MVP的基础上又优化了一些,既然是官方推的,还是建议能使用的就使用吧。 首先首先LifeCycle,Lifecycle组件包括Lifec...原创 2018-09-30 13:57:36 · 304 阅读 · 0 评论 -
Activity中的onSaveInstanceState()、onRestoreInstanceState()源码实现
一、作用Activity中的onSaveInstanceState()、onRestoreInstanceState()两个方法是用于保存Activity中的状态的。当Activity不是正常方式退出,且Activity在随后的时间内被系统杀死之前会调用者两个方法让开发人员可以有机会存储Activity相关的信息,并且在下次返回Activity时恢复这些数据。二、触发时机onSaveI...原创 2019-01-31 18:01:36 · 517 阅读 · 0 评论 -
java中的各种同步方法--syncharonized、Lock、Volatile、原子变量(Android通用)
在大多数实际的多线程应用中,两个或两个以上的线程需要共享对同一数据的存取时,这时往往我们为了保证数据的正确性、甚至不发生异常需要对相关的数据进行加锁处理。我们首先看一个例子:有一个银行,里面有一百个账户,每一个账户里面有1000块钱,100个账户总共是100000元,每一个账户都有自己一个独立的进程,现在我们让每一个账户都不停的向其他的账户转入随机的金额。代码如下:public clas...原创 2019-02-02 10:14:11 · 810 阅读 · 0 评论 -
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 · 207 阅读 · 0 评论 -
Android系统启动流程
在此说明,此文章只是个人的一个关于“Android系统启动流程”的一个总结,没什么源码。Android系统启动流程:1、启动电源以及系统启动:当电源键按下时引导芯片代码从预定义的地方(固化在ROM)开始执行。加载引导程序BootLoader到RAM中,然后执行。2、引导程序BootLoader:引导程序BootLoader是在Android操作系统开始运行前的一个小程序,它的主...原创 2019-02-12 17:35:34 · 23299 阅读 · 7 评论 -
Android获取路由网关(上联设备)MAC地址
我这边直接贴代码吧,里面有一些注释:具体的我就不解释了,但是这种方式我本地测试过,是准确的,包括有线和无线的连接方式,具体里面的一些之类和文件的含义,可以自己百度下。 /** * 获取路由器MAC地址 * @return */ public String getGatewayMac() { String str ="";...原创 2018-07-30 14:59:36 · 4297 阅读 · 2 评论 -
Android之SurfaceView讲解
一、SurfaceView与View的区别 首先我们了解下view的绘图机制,View是通过刷新来重绘视图,Android系统通过发出VSYNC信号来进行屏幕的重绘,刷新的间隔时间为16ms。如果再16ms内View完成了你所需要执行的所有操作,那么用户在视觉上,就不会产生卡顿的感觉;而如果执行的操作逻辑太多,需要频繁的刷新界面的时候,就会不断地阻塞主线程,从而导致画面卡顿。这时候就用到了原创 2017-01-01 13:19:57 · 462 阅读 · 0 评论 -
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 · 2993 阅读 · 0 评论 -
Fragment的系列解析之一 Fragment的产生,生命周期及使用
从今天起我将开始写一系列的Fragment文章,因为个人以前没怎么写过博客,所以写的比较慢,同时会有一些格式上或者内容的不好之处,还望大家见谅。下面简单介绍下这一系列文章将讲解的内容:Fragment的产生及优点; Fragment和Activity的生命周期关系; Fragment的使用:静态与动态; Fragment的方法的一一讲解与比较,包括回退栈; Fragment与Activity原创 2016-12-17 12:07:02 · 308 阅读 · 0 评论 -
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 · 1302 阅读 · 0 评论 -
Fragment的系列解析之二 Fragment管理中有关的那些方法及区别
上一篇中简单介绍了Fragment的一些基础信息,这一篇我们就来讲讲Fragment管理中的那些方法,如:add,replace,remove,hide,show,回退栈等:Add(): 在我们动态的添加、管理Fragment中,Add属于最基础的方法了,用法也很简单,如下就是向Activity添加一个Fragment: getSupportFragmentManager().beginTran原创 2016-12-18 22:28:20 · 327 阅读 · 0 评论 -
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 阅读 · 0 评论 -
Android设计模式之策略模式
作为一个菜鸟,每次自己写完代码后,回头一看发现自己的代码实在太乱了,不仅阅读起来很困难,而且以后改逻辑的话改起来也特别的麻烦,所以买了一本设计模式的书,自己没事就看看,最近看到了策略模式,所以就想写一写,若是写的不好还望大家见谅。 一、策略模式的定义: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以互相替换。策略模式让算法独立于使用它的客户而独立变化。 二、策略模式的使用原创 2016-12-29 23:01:22 · 265 阅读 · 0 评论 -
Fragment系列解析之三---Fragment和Fragment、Activity之间传值
今天这篇文章我们来聊一下和Fragment有关的传值。 1、先来说一下Fragment和Fragment之间是怎么传值得吧。一、 在Fragment的宿主Activity创建一个变量,然后给它设置set和get方法,然后我们可以在Fragment中取出此值,也可以改变此值。 这种方法一般是用在要传的值比较简单,或者内容单一的话。二、在Fragment的宿主Activity里定义一个方法用来判断原创 2017-01-14 22:43:11 · 497 阅读 · 0 评论 -
Android使用Handler实现子线程与子线程、主线程之间通信
今天这篇文章只讲一下怎么使用Handler实现子线程与子线程之间、子线程与主线程之间如何进行通信,关于具体的内部实现因为我也没研究过,所以这篇文章讲不了。一、子线程向主线程传值:这个实现比较简单,因为主线程自带Looper机制,所有我们不用创建Looper了,看一下代码吧:首选在主线程里创建一个Handler1.Handler mHandler = new Handler(){ 2. 3.原创 2017-01-15 14:13:57 · 25062 阅读 · 12 评论 -
Android事件分发-总结
android中的事件处理方式:① 事件传递,由外层向内层隧道式传递② 事件相应,由内层向外层冒泡处理android中一个完整的事件是由ACTION_DOWN到ACTION_UPAndroid 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent e...原创 2019-03-20 13:39:02 · 247 阅读 · 0 评论