分类

Android

深入探讨 Android 系统的核心架构与高级开发,聚焦四大组件(Activity、Service、Broadcast Receiver、Content Provider)的原理、生命周期管理和交互机制。从基础的组件构建与通信,到 Android Framework 层(如 AMS、WMS、PMS)的源码剖析和自定义扩展,提供详尽代码示例、调试技巧和性能优化策略。涵盖 JNI、AIDL、Binde

共 356 篇文章

Android

Android杀进程的两种方式:System.exit()和Process.killProcess()

Android杀进程的两种方式:System.exit()和Process.killProcess()Android上杀掉进程的方式有两种:System.exit(0)和Process.killProcess(Process.myPid()),这两种方式有些许区别。1、相同点1.1、APP进程都会被直接杀掉我们通过adb shell ps可以查看当前手机所有运行的进程状态,在执行完这两种方式之后,

1.8k
Android

应用流量统计:NetworkStatsManager

应用流量统计:NetworkStatsManagerNetworkStatsManager是 Android 6.0(API 级别 23)及以上版本中新增的一个类,主要用于提供网络使用历史统计信息。1、权限在使用 NetworkStatsManager之前,需要在 AndroidManifest中添加权限声明,并在代码中引导用户开启权限:通过AppOpsManager检查应用是否有使用情况访问权限

2.0k
Android

比较几种ID:UserHandle、AppID、UserID、UID、PID

比较几种ID:UserHandle、AppID、UserID、UID、PID在Android开发中,经常会遇到一些与ID相关的概念,如UID、UserID、AppID、PID和UserHandle。这些概念虽然听起来相似,但实际上是不同的。本文将详细介绍这些概念的定义、作用以及示例代码,以理解它们之间的区别。1、UserHandleUserHandle是每个用户在系统中唯一的标识符,用于区分不同用

2.9k
ViewOutlineProvider设置圆角矩形等形状
Android

ViewOutlineProvider设置圆角矩形等形状

ViewOutlineProvider设置圆角矩形等形状在项目开发中,为了让图片显示得更加美观,通常 UI 会设计成圆角矩形或圆形效果。介绍一种简单的原生方法设置圆角。ViewOutlineProvider是Android 5.x引入的新特性(SDK_INT >= 21),它是View包中的类,用于实现View的阴影和轮廓。用ViewOutlineProvider可以快捷地实现控件的圆角(Kotl

1.8k
存储管理:StorageManager 和 StorageStatsManager
Android

存储管理:StorageManager 和 StorageStatsManager

存储管理:StorageManager 和 StorageStatsManager在Android应用开发中,数据存储是一个重要的话题。存储设备分内部存储和外部存储,外部存储可以有SD卡、U盘等其它挂载的外设。1、StorageManager储存器管理器StorageManager是Android中管理存储设备的一个类,提供了访问设备上各种储存位置的功能。1.1、获取StorageManager实

2.3k
Android

WebView视频全屏播放

WebView视频全屏播放在StackoverFlow上就看到一篇实现WebView全屏播放Youtube网页视频的方法,这个方法很不错。废话不多说,直接看操作:继承WebChromeClient,重写WebChromeClient中的onShowCustomView(View , CustomViewCallback)和onHideCustomView()方法来实现网页视频全屏播放功能:首先看o

1.7k
Android

截屏监听:ScreenCaptureCallback

截屏监听:ScreenCaptureCallback非系统应用是没有办法监听用户截屏操作的,当然开发者有很多奇技淫巧去完成这个需求:ContentObserver监听媒体库、FileObserver监听文件,再对比图像文件名称(一般包含时间命名)、路径(一般包含screenshot等字符)、时间戳等信息过滤截图。从Android 14即API 34开始,Android提供了一个官方接口Screen

2.4k
Android

Settings属性读写

Settings属性读写 在Android系统当中,系统设置保存着全局性、系统级别的用户编好设置,比如像飞行模式开关、是否开启手机静音模式时震动、屏幕休眠时长等状态值(前提是有读取权限)。1、Settings属性这些用户偏好的设置很多就保存在SettingsProvider中,在Android 6.0及以后版本,SettingsProvider被重构,Android从性能、安全等方面考虑,把Set

2.4k
Android跳转系统Settings界面
Android

Android跳转系统Settings界面

Android跳转系统Settings界面当应用没有权限、没有打开通知等情况时,需要引导用户跳转到对应的系统设置界面手动操作。Settings提供了丰富的ACTION_跳转设置界面,让我们来看一下。以Android refs/tags/android-14.0.0_r66为例,设置源码中ACTION_共110个:①hide和system ACTION_有15个,普通应用无法跳转②其79个设置跳转A

2.7k
Android

浅析Adapter中hasStableIds的作用

浅析Adapter中hasStableIds的作用1、ListView Adapter中的hasStableIds在使用ListView的时候需要自定义Adapter,一般是继承Adapter或者其子类比如BaseAdapter,并实现方法。其中有两个方法大家一定不陌生:其中一个是hasStableIds():在众多Adapter的子类中默认实现都是返回false:另一个方法则是getItemId

1.9k
Android

Webview识别当前选中的类型 HitTestResult

Webview识别当前选中的类型 HitTestResult在Webview中通过HitTestResult可以识别当前触碰到网页上的元素类型,通过这个方法可以实现:长按文本选中,长按图片保存等功能。首先通过getHitTestResult()方法获取Webview中的HitTestResult对象:HitTestResult对象中有两个变量,分别保存点击类型mType和点击的数据mExtra:通

1.4k
Android

ViewConfiguration详解

ViewConfiguration详解ViewConfiguration这个类主要定义了UI中所使用到的标准常量,像超时、尺寸、距离,如果我们需要得到这些常量值,就可以通过ViewConfiguration类来获取。 ①首先获取ViewConfiguration对象,由于ViewConfiguration的构造方法为私有的,只能通过get(context)这个静态方法来获取到该对象。 先尝试从sC

1.7k
媒体附加属性:ExifInterface
Android

媒体附加属性:ExifInterface

媒体附加属性:ExifInterfaceExif:可交换图像文件格式(Exchangeable image file format),是一种用于存储照片元数据的标准格式。包含了照片的拍摄参数和环境等信息。比如图片的方向Orientation,方向信息用于指示照片的正确显示方向,以便在不同设备上正确显示图片。TIFF:标签图像文件格式(Tagged Image File Format),是一种广泛使

1.7k
获取Android内置WebView内核版本
Android

获取Android内置WebView内核版本

获取Android内置WebView内核版本竟然能遇到这样奇葩的事情,网页用的技术过于新颖,以至于只支持高版本Chromium内核的,低版本安卓系统中内置的内核版本较低,无法加载前端页面。1、设置查看在系统设置里 > 应用 > 应用管理 > 显示系统应用,查看WebView组件:2、页面查看通过WebView发起的网络请求,都会带上浏览器的UA,通常页面都可以通过UA判断浏览器的内核版本。这里有两

1.1w
监听View树ViewTreeObserver深度剖析
Android

监听View树ViewTreeObserver深度剖析

监听View树ViewTreeObserver深度剖析ViewTreeObserver用来监听View视图树的变化,正如它的注释所说:ViewTreeObserver类是final类不可继承,且构造函数默认View包可见。应用只能通过getViewTreeObserver()方法获取:在ViewRootImpl构造的时候,同时也会构造一个AttachInfo,在这mAttachInfo中默认就拥有

1.7k