自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Android 高斯模糊方法集

工具类public class GaussianBlurUtil { private final static String TAG = "GaussianBlurUtil"; /** * first method : RenderScript * 优点:原生API、效率高,在C/C++ 层做处理 * 缺点:API > 17 才可以用、用兼容包的话,会导致APK 体积增大,support包约160k * @param context

2021-10-15 15:12:50 453

原创 Android.mk解析

LOCAL_PATH := $(call my-dir)每个Android.mk文件必须以定义LOCAL_PATH为开始。主要作用为在开发的tree中查找源文件。宏my-dir是由Build System提供,将返回当前目录(Android.mk文件本身所在的目录)的路径include $(CLEAR_VARS)CLEAR_VARS变量是由Build System提供,指向一个特殊的GNU Makefile,由GNU Makefile负责清理LOCAL_xxx。例如LOCAL_MODULE,.

2021-07-30 14:24:28 441

原创 Android 9.0 SystemUI 锁屏流程分析

1、锁屏界面显示的流程2、按键灭屏 —> 按键亮屏对于Key事件,InputDispatcher在分发之前会先将事件上发到PhoneWindowManager中,可以进行拦截,故从PhoneWindowManager的interceptKeyBeforeQueueing()方法开始分析按键灭屏,其中根据keyCode处理各种类型的Key事件。PhoneWindowManager.javapublic int interceptKeyBeforeQueueing(KeyEvent event

2021-07-30 10:59:20 1788

原创 Android 6.0 SystemUI锁屏流程分析

本文只是简单分析SystemUI的锁屏流程,便于以后查阅。如有侵权,可立即删除,如有误,还请各位指出~首先来看一下SystemUI的启动流程是怎么样的?启动流程: Zygote->SystemServer->SystemUIService->SystemUIApplication->SystemUI.start(),然后KeyguardViewMeditor、PowerUI、Recents、VolumeUI等子类开始工作。其中KeyguardViewMeditor是锁屏控制器,是

2021-05-12 10:52:36 328

原创 Socket 实现跨进程通信

一、项目配置:需要在AndroidManifest.xml中声明权限<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />//将SocketServerService服务声明为远程服务端 <service android:name=".

2021-01-05 10:12:38 340

原创 Android 跨进程通信AIDL

本文仅用于记录开发过程中遇到的问题及对应的解决方案,如有侵权可立即删除,同时欢迎大家批评与指正!!!AIDL(Android Interface Definition Language,Android接口定义语言):用于某个远程的Service可以与多个进程进行通信,实现多个进程共享同一个Service的功能。在多进程进行通信时,存在两种进程角色,服务器端和客户端,在本文将AppWidget作...

2020-12-31 14:11:57 311 1

原创 Android网络请求(Retrofit)

本文为一个简单的Retrofit例子步骤一:配置build.gradle在build.gradle中进行如下配置 implementation 'com.squareup.retrofit2:retrofit:2.0.2' implementation 'com.squareup.retrofit2:converter-gson:2.0.2' implementation 'com.google.code.gson:gson:2.8.5' implementation 'com

2020-12-29 15:23:45 102

原创 RxBus

记录学习RxBus过程RxBus是用RxJava来实现事件总线的1、在build.gradle(app)中添加依赖 implementation 'io.reactivex.rxjava2:rxjava:2.0.1' implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'2、定义一个事件类public class Event { String str; public Event(String str){ thi

2020-12-25 09:40:31 136

原创 Android MVP (网络请求天气Demo)

MVP(Model — View — Presenter)Model:数据相关层,在该层定义Model.inerface是表示数据层发生变化时的通知接口,因为Model不能与View直接交互,所以需要通过Presenter来间接达到与View的交互;View :视图相关层,在该层定义的View.interface是表示View视图的各种变化,一般由Activity或Fragment来实现这个接口,如设置TextView、加载Dialog、更新进度条等;Presenter:纽带层,用来连接Model和V

2020-09-02 15:54:23 369

原创 Android 实现多任务——AsyncTask(源码解析)

为什么有handler还要出AsyncTaskAndroid 实现多任务——Handler(源码解析)见另一篇文章,在本文中着重分析AsyncTask这个工具类。用Handler在子线程中更新UI,虽然可以避免在主线程中进行耗时操作,但耗时的操作总会启动一些匿名的子线程,会在一定的程度上带来性能问题,因此Android提供了AsyncTask工具类(异步执行任务),专门用来处理后台比较耗时的任务。/*** params :doInBackground 方法的参数类型* Progress :Asyn

2020-08-26 11:05:11 386

原创 Android 实现多任务——Handler(源码解析)

多任务实现原理Android 有两种方式实现多线程操作UI:创建线程Thread,用Handler负责线程间的通信和消息;AsyncTask 异步多任务。本文主要记录用Handler实现多任务,AsyncTask实现多任务在下篇文章中。...

2020-08-25 20:43:18 472

原创 Git 使用教程及命令

1、Git与SVN区别(1) SVN(集中式版本控制系统):由中央服务器统一存放版本库,当员工A进行开发时,首先从中央服务器中取得最新的版本,然后进行开发,开发结束后在推送给中央服务器。集中式版本控制系统的最大缺点就是需要联网才能工作,尤其是在互联网上,若网速慢,提交过程需要等待很久。(2) Git(分布式版本控制系统):没有中央服务器统一存放,每一台主机都是一个完整的版本库,因此在工作时就不...

2020-08-19 10:39:50 174

原创 android APP 内存泄漏检测工具—Profiler+MAT

内存泄漏(Memory Leak):在程序中申请了一块内存,由于某种原因一直未释放,造成系统内存的浪费,如果不断的申请还会导致内存溢出(Out Of Memory,OOM)。介于项目客观条件限制,故使用**Android Studio的 Profiler和MAT(Memory Analyzer Tools)**来分析内存泄漏问题。在真机上检测内存泄漏,需要打开ADB调试一、Android Profiler1、打开方式: View > Tool Windows > Profiler2、启

2020-08-19 10:28:58 862

原创 自定义WheelView实现日期时间选择器

android 提供的DatePicker和TimePicker有时在开发时不满足开发需求,需要自定义WheelView来实现日期时间选择器。自定义wheelView类import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.grap...

2020-05-08 17:53:58 572

原创 android 带清除按钮的EditText

Android自带的EditText没有清除按钮,为了开发需求,需要重写EditTextpublic class ClearEditText extends AppCompatEditText implements View.OnFocusChangeListener, TextWatcher { /** * 删除按钮的引用 */ private Drawab...

2020-04-07 16:06:46 477

原创 Service设置为前台服务

通常Service都是运行在后台,后台运行的Service系统优先级较低,在系统内存不足的时候,后台运行的Service可能会被回收。当需求Service一直保持运行且在内存不足的情况下不会被回收,可以将Service设置为前台服务。创建一个前台服务public class MyService extends Service{ private static final String TAG ...

2020-04-02 16:10:22 713

原创 Android Studio识别不到Nox设备

当Nox运行时,AndroidStudio有时会识别不到设备,解决方法如下:1.进入夜神模拟器的安装bin目录下2.shift+右键,打开命令行3.敲入 nox_adb.exe connect 127.0.0.1:620014.重启夜神模拟器后就可以识别了...

2020-01-10 16:49:01 171

原创 Android事件分发机制

本文是在学习https://www.cnblogs.com/chengxuyinli/p/9979826.html文章之后,进行的知识整理,如有侵权可立即删除,欢迎大家批评与指正!!!一、基础知识1、被分发的对象       被分发的对象指的是用户触摸屏幕后产生的点击事件,通常用户触摸屏幕会出现按下、滑动、抬起与取消状态,...

2019-12-25 15:07:05 108

原创 Android实现定位

简单定位工具类/** * 简单定位工具类 */public class LocationUtil { private volatile static LocationUtil uniqueInstance; private LocationManager locationManager; private String locationProvider; p...

2019-12-19 15:44:45 127

原创 Android 对输入框EditText中输入内容加以限制

在开发过程会根据实际情况对输入框中的输入内容加以限制,限制输入内容不同对应的策略不同在实际开发过程中遇到输入框中只允许输入汉字的要求,针对该问题的解决方案如下:setFilters接收的参数是InputFilter类型的数组,通过该方法对输入的文字进行过滤mEditText.setFilters(filter); private InputFilter[] filter = new In...

2019-12-19 15:43:24 679

原创 Android 网络请求数据(Volley)

第一步:创建请求队列RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());第二步:创建JSONObjectRequest请求,将请求添加到队列中url:上传的认证信息;utf8Url:将上传的认证信息使用utf-8编码;mStrWeatherUrl :请求的地址; private ...

2019-12-09 13:30:43 218

原创 Java开发规约插件的安装和使用

一、阿里巴巴 java 开发规约插件安装方法一:方法二:通过下载安装包进行安装1、下载地址:插件2、 Settings >> Plugins >> Install plugin from disk…,选择刚刚下载的zip包安装,然后重启IDE二、阿里巴巴 java 开发规约插件使用...

2019-12-09 10:30:58 201

原创 监听Settings.Global中的配置信息的变化

监听Settings.Global中的配置信息的变化自定义一个类继承ContentObserver在onChange()方法中去获取想要监听的数据信息 private class ModelObserver extends ContentObserver { public ModelObserver(Handler handler) { super(h...

2019-12-09 10:14:20 3134

原创 Android 监听网络状态发生变化

Android 监听网络状态变化通过网络连接管理者获取管理对象,使用ConnectivityManager中的getActiveNetworkInfo()方法获取网络连接的额外信息,调用isAvailable()和isConnected()方法判断当前网络是否可用,是否连接。public class NetworkChangedReceiver extends BroadcastReceive...

2019-12-09 10:13:36 484

空空如也

空空如也

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

TA关注的人

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