- 博客(84)
- 资源 (15)
- 收藏
- 关注
原创 Android辅助功能AccessibilityService监听当前包名变化
1.继承系统的AccessibilityService服务,实现自己的辅助功能服务class MyAccessibilityService: AccessibilityService(){ companion object { const val TAG = "MyAccessibilityService" } override fun onAccessibilityEvent(event: AccessibilityEvent) { val eve
2022-05-26 16:23:13
1264
1
原创 Gameframework启动流程
Gameframework启动流程框架入口启动流程图框架入口Gameframework框架入口脚本 GameEntry.cs,代码如下:/// <summary> /// 游戏入口。 /// </summary> public partial class GameEntry : MonoBehaviour { private void Start() { //初始化框架内部的组件 InitBuiltinCompo
2020-10-21 16:20:24
594
原创 Java代理模式
代理模式定义代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式组成抽象角色:通过接口或抽象类声明真实角色实现的业务方法。 代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。 真实角色:实现抽象角色...
2018-06-04 11:56:17
548
原创 Java进阶知识-反射
获取Class对象有三种方式获取Class对象:根据类的完整包名获取ClassClass clazz = Class.forName("com.example.xjp.demo.reflect.PersonInfo");根据类名直接获取ClassClass clazz = PersonInfo.class;根据实例类的对象获取Class PersonIn...
2018-03-23 16:32:20
1290
原创 Android线程知识
线程概念及使用场景线程是操作系统中最小的执行单元,一个进程中可以有多个线程,他们可以并发的执行多个任务。同一个进程中的多线程是共享内存的,可以很方便的相互通信线程是一次性消费品,一般用于耗时任务中,避免阻塞UI线程。线程的创建和销毁是比较消耗CPU资源的,所以,一般不频繁的创建和销毁线程,如果存在这种需求,请使用线程池。创建线程线程的使用方式有两种:继承Thread对象,...
2018-03-19 16:21:41
1179
原创 逆向小米系统Settings.apk过程记录
知识背景dexodexdex文件xxx.java->xxx.class->classes.dex 拿一个apk解压后你会看到一个classes.dex文件,我们逆的目标就是他,也就是apk中的源码都在classes.dex文件中。odex文件odex是安卓上的应用程序apk中提取出来的可运行文件,即将APK中的classes.dex文件通过dex优化...
2018-03-05 10:53:58
9253
原创 Android 跨进程启动Activity黑屏(白屏)的三种解决方案
当Android跨进程启动Activity时,过程界面很黑屏(白屏)短暂时间(几百毫秒?)。当然从桌面Lunacher启动一个App时也会出现相同情况,那是因为App冷启动也属于跨进程启动Activity。为什么没会出现这种情况呢?真正元凶就是Android创建进程需要准备很多资源,它是一个耗时的操作。黑屏(白屏)原因当A进程启动B进程中的一个Activity时,Android系统会先有zygote
2017-12-16 23:19:32
7190
原创 Android ContentProvider 知识点总结
概述ContentProvider:内容提供者,是Android四大组件之一,为其他app提供数据。其他app可以通过ContentResolver:内容解析器来增,删,查,改相关的数据。ContentProvider主要用于跨进程共享数据,它是一套标准的接口访问,其内部实现可以是SQLiteDatabase,文件,图片索引,媒体索引等。如果你不需要在多个应用间共享数据,可以使用SQLiteData
2017-11-08 15:33:11
1218
原创 Android 音频管理AudioManager使用
1.api解析 2.api使用 1.音频的三种模式(静音,震动,响铃) 2.音频的分类(电话,通知,媒体,闹钟) 3.音频单独控制(控制是通知,电话静音,震动等) 3.实用场景
2017-10-29 10:44:04
7354
转载 java 对象锁和类锁的区别
1.一个类可以有多个对象,所以一个类可以有多个对象锁。 2.当一个类中有多个synchronized修饰的同步方法时,其中一个方法被线程访问持有锁,其他方法同样被锁住,其他线程依然不能访问其他同步方法,因为此时锁住的是该类的对象,相当于整个对象锁住了。 3.一个类只能有一个.claas,所有一个类只能有一个类锁。首先的明白java中锁的机制 synchronized 在修饰代码块的时候需
2017-09-18 15:19:32
7837
原创 Android 常用的数据加密方式
前言Android 很多场合需要使用到数据加密,比如:本地登录密码加密,网络传输数据加密,等。在android 中一般的加密方式有如下:亦或加密AES加密RSA非对称加密当然还有其他的方式,这里暂且介绍以上三种加密算法的使用方式。亦或加密算法什么是亦或加密?亦或加密是对某个字节进行亦或运算,比如字节 A^K = V,这是加密过程;当你把 V^K得到的结果就是A,也就是 V^K = A,这
2017-06-22 15:46:08
9205
原创 Android顶部布局View不随着输入框弹出而上移
前提平时我们需要实现布局底部布局View随着输入框弹出而上移的效果,但是有些时候我们需要实现顶部布局View不随着输入框弹出而上移,比如自定义的Activity的title,这个时候就不希望随着输入框弹出而title也上移。以为此时title上移就看不见了。所以我们需要实现顶部title View不随着输入框的弹出而上移。实现的主要代码是布局文件,实现如下:<?xml version="1.0" e
2017-06-05 20:55:05
6591
1
原创 Android辅助功能 Accessibility Services基本用法笔记
概述Accessbility 又叫做辅助功能,是Android官方推出帮助身体不便或者操作不灵活的人来辅助操作手机应用的。当然也可以用来干一些别的事,比如自动抢红包啊,静默安装app,帮助用于开一系列权限操作等。出于项目需求,大概研究了下Accessilibity的基本用法。Accessibility用法实现自己的辅助功能类要实现自己的辅助功能,需要继承系统的AccessibilityService
2017-04-23 14:34:08
24994
1
原创 Android ViewPager的使用总结
ViewPager的基本使用ViewPager继承自ViewGroup,是一个View容器。用于装载多个View页面,可以在一个固定空间切换多个页面显示。 ViewPager使用也很简单,主要代码是实现PagerAdapter适配器。首先适配器继承PagerAdapter,一般需要实现如下几个方法:getCount()isViewFromObject(View, Object)instant
2017-04-01 12:02:57
13067
1
原创 Android Lottie动画的简单使用
简介在Android中做动画效果无非是以下几种方法:普通动画帧动画属性动画通过改变LayoutParams布局参数来实现动画现如今在Github上有一个比较火的动画库Lottie,Github上关于Lottie库介绍大概是这样的: Lottie是一个为Android和iOS设备提供的一个开源框架,它能够解析通过Adobe After Effects 软件做出来的动画,动画文件通过
2017-03-13 20:33:07
18788
1
原创 Volley框架的错误重试机制分析
Volley框架的网络处理相关类如下: Network :封装网络请求接口 BasicNetWork : Network 接口实现类,用于封装网络请求,并且对请求结果封装,且实现网络请求错误重试机制。 HttpStack:执行网络请求接口 HurlStack:HttpStack 接口实现类,用于真正执行网络请求,并且得到请求结果。 HttpClientStack:HttpStack 接口实
2016-11-28 10:44:12
2263
原创 简析Android网络请求Volley框架的工作原理
Volley网络模块以及错误重试机制分析相关类如下: Network :封装网络请求接口 BaseNetWork : Network 接口实现类,用于封装网络请求,并且对请求结果封装,且实现网络请求错误重试机制。 HttpStack:执行网络请求接口 HurlStack:HttpStack 接口实现类,用于真正执行网络请求,并且得到请求结果。 HttpClientStack:Http
2016-10-29 09:39:52
4030
1
原创 Android Camera开发之基础知识篇
概述Android框架支持设备的相机拍照和录像功能,你的应用可以直接调用系统的Camera应用来拍照或者录像(比如微信拍照),当然也可以利用Android系统提供的API开发一个Camera应用来实现相机拍照和录像功能(比如市面上流行的360相机)。此篇文章主要记录相机开发有关的基础知识,以及带着自己的理解翻译Camera官方文档,如有翻译不恰当支出,还请指出改正。当然我会开一个有关相机开发的一个系
2016-08-19 17:22:59
35436
13
原创 初识Android进程间通信之----Binder机制
【转载请注明出处:http://blog.youkuaiyun.com/feiduclear_up/article/details/51385868 优快云废墟的树】前言前面两篇博客分别介绍了Android进程间通信之AIDL的使用,以及使用AIDL传递复杂对象以及Bitmap对象。所谓AIDL:Android Interface Definition Language,是一种Android接口定义语言,
2016-05-14 22:36:38
8269
原创 Android进程间通信之----Aidl传递对象
转载请注明出处 优快云废墟的树前言有关Android进程间通信之Aidl编程的基本使用步骤已经在上一篇博客中有讲解,Android studio 下的aidl编程实现Android的夸进程间通信。上一篇博客中只是演示了怎么利用Aidl实现跨进程间传递Java基本类型,以及Aidl传递Bitamap对象。可能在一些场景下你需要跨进程传递一个对象,那么Aidl是否能传递一个对象呢?答案是肯定的,网上也
2016-05-13 10:54:04
19849
原创 Android studio 使用NDK工具实现JNI编程
前言:Android开发中经常会使用到第三方的.so库,在使用.so库的时候就要用到JNI编程。JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。开发中一般都用第三方的库,很多时候也可能我们自己来编写C或者C++来实现JNI编程,这篇博客主要是介绍Android studio 使用NDK工具来开发JNI编程。环境配置JN
2016-04-02 23:02:36
3841
原创 Android 地理位置Location服务之LocationManager,Geocoder详解
前言Android 系统提供了地理位置服务相关的API方便开发者去获得当前地理位置。在android framework层的android.loaction包下面主要提供了如下两个类来帮助开发者来获取地理位置信息。LocationManager:用于获取地理位置的经纬度信息Geocoder:根据经纬度获取详细地址信息 / 根据详细地址获取经纬度信息今天我们通过简单例子来详细说明
2016-02-21 14:52:55
20396
4
原创 自己动手写Android数据库框架
前言相信不少开发者跟我一样,每次都很烦恼自己写数据库,而且那些数据库语句也经常记不住。当然网上也有很多很好的数据库框架,你可以直接拿来用,但是 很多时候我们的项目,特别是一个小型的Andrond应用原本用到的数据库结构比较简单,没必要去用那些有点臃肿的框架。当然,即使你用那些框架,当你遇到问题时,你是否也得去修改它?你要修改别人的框架必须的读懂他人的设计代码。所以不管从那个角度出发,你都得掌握简单的
2016-01-23 22:18:25
4140
1
原创 Android Drawable资源总结篇
LayerDrawableLayerDrawable是一组按照顺序绘制的drawable资源,是由多个drawable资源重叠绘制而组成的,最后一个drawable会被绘制在最顶层。LayerDrawable资源的使用场景如下:自定义SeekBar和水平进度条ProgressBar的样式代码实现图片叠加效果1.自定义SeekBar样式和水平进度条ProgressBar样式
2016-01-19 15:24:49
3685
原创 Android M新控件之FloatingActionButton,TextInputLayout,Snackbar,TabLayout的使用
【转载请注明出处:http://blog.youkuaiyun.com/feiduclear_up/article/details/46500865 优快云 废墟的树】在前不久的谷歌2015 I/O大会上,发布了Android新版本M,貌似从这个版本开始Android不在以数字命名版本了。在这次的I/O大会上谷歌对Android并没有很大的改变,主要是修改完善之前Android L版本。不过在谷歌推出Mat
2015-12-29 21:43:33
32444
1
原创 详解Android 触摸事件处理和传递过程的来龙去脉
前言前面有两篇博客从源码角度分析了Android中View的触摸事件处理和ViewGroup的触摸事件传递过程,对于初学者来说可能直接从源码了解Android触摸事件有点门槛,那么这篇博客我们不分析源码,尽量用简介的语言和简单的例子来详细解释Android触摸事件的处理和触摸事件传递的过程。Android触摸事件流程简述这里我将触摸事件理解为两部分:触摸事件的传递过程触摸事件的处理过程触摸事件
2015-12-20 17:57:41
4511
原创 Android 导航栏ActionBar和状态栏StautsBar的定制
有关Theme主题<resources> <!-- 所有主題可以添加 .NoActionBar 让其变成无ActionBar的Activity--> <!-- 所有使用AppCompat兼容主題前提條件如下: 1.当前Activity继承AppCompatActivity 2.添加'com.android.support:appcompat-v7:23.0
2015-12-20 14:49:12
4820
原创 Android对话框Dialog,PopupWindow,Toast的实现机制
1.前言在Android系统中窗口(Window)分三种类型:应用窗口,子窗口,系统窗口。上一篇博客分析了Android应用窗口Window的创建过程,接下来这篇博客来学习其他两种窗口类型的实现机制。Android开发中经常会使用到Dialog,PopupWindow,Toast等对话框来作为提示信息或者和用户交互。然而这些对话框其实都是窗口,它们的创建和移除机制也就是Android系统对窗口的添加
2015-10-20 21:37:10
17410
原创 Android Activity应用窗口的创建过程分析
【转载请注明出处:http://blog.youkuaiyun.com/feiduclear_up 优快云 废墟的树】前言所谓的窗口(Window)就是一个显示在手机屏幕上可视化视图的一片区域。在Android中窗口是一个抽象的概念,每一个Activity就对应着一个窗口,而所有的窗口都是由视图(View)来呈现,而我们知道View构成的一个树形结构的视图就组成了一个Activity的界面了。在Android
2015-10-17 18:47:05
8624
原创 八一八我亲身逃离传销的经历
对,亲们没有看错!我被朋友忽悠去传销了。不要问什么时候,就在2015年9月3号。不过幸运的是我在9月4号下午逃离了那个传销组织,不幸的是我那个朋友却深陷传销组织泥潭无法自拔。接下来我会详细记录下这几天我所看到,听到,亲身经历的一个过程和感受。交代背景:还得从一年多前说起,一个朋友由于家里缘由,从深圳离职回老家了。后来家里事情处理完之后,跟我说他要去湛江跟同学开服装店。听到这个消息时是有点怀疑的:个人
2015-09-06 15:03:10
18236
35
原创 Android Context 是什么?
【转载请注明出处:http://blog.youkuaiyun.com/feiduclear_up 优快云 废墟的树】引言Context对于Android开发人员来说并不陌生,项目中我们会经常使用Context来获取APP资源,创建UI,获取系统Service服务,启动Activity,绑定Service,发送广播,获取APP信息等等。那么Context到底是什么?Context又是怎么来实现以上功能的?在什
2015-08-12 14:17:48
31352
13
原创 Android View触摸事件传递机制
PS:以现在的眼光看以前写的博客感觉写的很烂,或许或一段时间再看现在的博客会有同样的感觉。所以每时每刻都去学习,去发现和理解新的东西。引言由于之前写的一篇关于Android事件传递顺序的博客质量太差,可能是理解不到位的原因,故最近又花了许多时间再次去看Android源码,看完之后有了新的理解,所以打算重新整理这篇博客。理解Android触摸事件传递机制有助于日后的开发以及自定义一些手势效果等。注意:
2015-08-08 11:01:02
6847
3
原创 Android ViewGroup 触摸事件传递机制
引言上一篇博客我们学习了Android View 触摸事件传递机制,不了解的同学可以查看Android View 触摸事件传递机制。今天继续学习Android触摸事件传递机制,这篇博客将和大家一起探讨ViewGroup的触摸事件传递机制。示例示例代码如下:public class MainActivity extends ActionBarActivity { private String
2015-08-01 22:44:38
4414
2
原创 Android IntentService的使用和源码分析
引言Service服务是Android四大组件之一,在Android中有着举足重轻的作用。Service服务是工作的UI线程中,当你的应用需要下载一个文件或者播放音乐等长期处于后台工作而有没有UI界面的时候,你肯定要用到Service+Thread来实现。因此你需要自己在Service服务里面实现一个Thread工作线程来下载文件或者播放音乐。然而你每次都需要自己去写一个Service+Thread
2015-07-21 15:53:05
3283
2
原创 Android异步任务处理框架AsyncTask源码分析
【转载请注明出处:http://blog.youkuaiyun.com/feiduclear_up 优快云 废墟的树】引言在平时项目开发中难免会遇到异步耗时的任务(比如最常见的网络请求)。遇到这种问题,我们可以自己通过Handler+Message+Thread/ThreadPool来构造一个异步耗时任务框架。当你下次项目中又遇到一个网络请求,你又不得不重写异步耗时任务处理框架。出于避免开发者重复搬砖工作,G
2015-07-20 11:03:54
5980
原创 Android5.x 新控件之RecyclerView,CardView,Palette的使用
『转载注明出处:http://blog.youkuaiyun.com/feiduclear_up/article/details/46439005 优快云废墟的树』自Android5.0发布以来,谷歌推出全新的Material Desigen设计风格,时过一年多了,在国内也看到很多应用在慢慢适应MD设计风格。其中比较好的app就是网易新闻客户端了,其设计风格基本符合MD要求。鉴于越来多App采用MD设计风格
2015-07-14 13:09:05
9899
4
原创 从Handler+Message+Looper源码带你分析Android系统的消息处理机制
引言【转载请注明出处:http://blog.youkuaiyun.com/feiduclear_up 优快云 废墟的树】作为Android开发者,相信很多人都使用过Android的Handler类来处理异步任务。那么Handler类是怎么构成一个异步任务处理机制的呢?这篇博客带你从源码分析Android的消息循环处理机制,便于深入的理解。这里不得不从“一个Bug引发的思考”开始研究Android的消息循环处
2015-07-13 10:19:59
7016
2
原创 Android HandlerThread 源码分析
HandlerThread 简介:我们知道Thread线程是一次性消费品,当Thread线程执行完一个耗时的任务之后,线程就会被自动销毁了。如果此时我又有一个耗时任务需要执行,我们不得不重新创建线程去执行该耗时任务。然而,这样就存在一个性能问题:多次创建和销毁线程是很耗系统资源的。为了解这种问题,我们可以自己构建一个循环线程Looper Thread,当有耗时任务投放到该循环线程中时,线程执行耗时
2015-07-11 12:33:53
17174
6
原创 从ViewRootImpl类分析View绘制的流程
【转载请注明出处:从ViewRootImpl类分析View绘制的流程 优快云 废墟的树】从上两篇博客 《从setContentView方法分析Android加载布局流程》 和 《从LayoutInflater分析XML布局解析成View的树形结构的过程》 中我们了解到Activity视图UI是怎么添加到Activity的根布局DecorView上面的。我们知道Activity中的PhoneVie
2015-07-09 09:10:16
19370
23
DialogFragment
2015-05-20
Androd对话框
2015-05-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人