分类

Android

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

共 356 篇文章

Android P http网络访问ERR_CLEARTEXT_NOT_PERMITTED
Android

Android P http网络访问ERR_CLEARTEXT_NOT_PERMITTED

ERR_CLEARTEXT_NOT_PERMITTEDGoogle针对 Android P版本(9.0)以后的应用程序,默认使用加密连接。访问http将会报错net::ERR_CLEARTEXT_NOT_PERMITTED。这也是Google为保证用户数据和设备的安全。解决办法还是有的,慢慢往下看1、usesCleartextTraffic最简单直接的方法:在AndroidManifest.xml

1.7k
富文本SpannableString
Android

富文本SpannableString

SpannableString1、SpannableString简介和String类似,不过SpannableString的功能更加丰富强大。给原本枯燥的文本添加各种功能和色彩。比如颜色、字体、超链接、表情、点击响应等功能。源码中关于SpannableString的解释如下:2、设置风格:SetSpan()关于SpannableString源码就70余行,除了几个构造函数,还有一个重要的方法set

2.1k 1
assets/资源
Android

assets/资源

assets资源Android的资源文件一般放在res/文件夹下,这些会被编译,我们可以直接通过R.java去引用这些资源文件。 res/drawable 图片 res/values/string 字符串 res/values/colors 颜色 res/values/dimens 尺寸 res/values/arrays 数组 res/values/attrs 自定义View属性declare-

1.6k
Android

Android 触摸事件剖析:从分发链到滑动冲突

Android 触摸事件剖析:从分发链到滑动冲突触摸是 Android 交互最基础的方式,但事件分发的"U 型链"、拦截与消费的规则、以及常见的滑动冲突,常常让人困惑——为什么子 ListView 收不到事件?为什么父布局一拦截,子 View 就再也滑不动?要彻底搞懂,必须理解事件分发的完整链路。本文从三个核心方法入手,讲透 MotionEvent 序列的流转与 mFirstTouchTarget

189
Android

Android ScrollView 详解:从使用到原理与嵌套冲突

Android ScrollView 详解:从使用到原理与嵌套冲突ScrollView 是 Android 里最基础的"可滚动容器",看似简单,真到实战却处处是坑:嵌套 ListView 只显示一行、和 ViewPager 抢滑动、监听不到滚动方向、滚不到底、拉到边缘有碍眼的蓝色回弹……本文把 ScrollView 的基本使用、滑动监听、滚到顶底、滑动冲突、嵌套列表、消除回弹、底层原理一次性讲透—

204
导航栏NavigationView
Android

导航栏NavigationView

NavigationView1、NavigationViewNavigationView是专为配合DrawerLayout的侧边栏使用的。关于DrawerLayout这里不多说了,详细用法参考我的另一篇博客抽屉布局DrawerLayout在布局文件中添加NavigationView,作为DrawerLayout的侧边栏拉出。注意属性layout_gravity="start",从左侧屏幕边缘拉出导

1.6k
SwipeRefreshLayout下拉刷新
Android

SwipeRefreshLayout下拉刷新

SwipeRefreshLayout 下拉刷新是经常遇到的场景,Android官方为我们提供了一个下拉刷新控件,准确的来说是容器。官方文档说明,SwipeRefreshLayout只能有一个子View,这一点和ScrollView一样。1、布局中添加SwipeRefreshLayout 使用SwipeRefreshLayout需要在build.gradle中添加额外的依赖,因为这属于materia

1.7k 1
抽屉布局DrawerLayout
Android

抽屉布局DrawerLayout

DrawerLayout大多数APP都会提供侧边菜单,在手机屏幕的左测或者右侧从外向内滑动拉出一个菜单。就是用DrawerLayout实现的,Android官方提供的侧边菜单栏。1、布局中添加DrawerLayoutDrawerLayout作为布局的根标签。主布局LinearLayout一定要放在紧接着第一个位置。而且大小一定要设置成match_parent2、添加侧边菜单在DrawerLayou

1.7k
ViewFlipper飞掠视图
Android

ViewFlipper飞掠视图

ViewFlipper同样是滚动视图,可以作为APP首页的banner。效果和ViewPager一样,名气却远不如ViewPager。1、使用ViewFlipperViewPager是通过设置ViewPagerAdapter添加数据的,如何向ViewFlipper中添加View呢?2、布局中添加子控件直接在布局中ViewFlipper节点下添加控件,所有在ViewFlipper节点下的控件都会被当

1.7k
Android按键事件KeyEvent监听
Android

Android按键事件KeyEvent监听

按键KEYCODE1、onKeyOnKeyListener 监听接口,OnKeyListener只检测控制键,不会检测文本键(数字、字幕、标点等),实现onKey()方法:给指定的控件添加OnKeyListener注意:①返回true表示处理完,不再进行Key事件的分发。返回false,表示继续向后面处理,比如输入到EditText中。②onKey()每次都会收到两次重复的按键编码,一次是KeyE

4.0k
本机APP扫描、打开第三方APP、卸载
Android

本机APP扫描、打开第三方APP、卸载

1、扫描手机已安装APP 通过PackageManager可以获取手机端已安装的apk文件的信息1.1、获取本机所有已安装应用PackageManager通过getInstalledPackages(flag)获取,传入flag为0表示所有APP。1.2、获取本机系统应用(packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM

1.8k
Apk扫描、解析、安装
Android

Apk扫描、解析、安装

1、扫描手机存储的APK安装包废话少说直接上代码,借助ContentResolver查询系统APK的媒体类型"application/vnd.android.package-archive",通过"mime_type=\"application/vnd.android.package-archive\""筛选,即可获得手机存储的所有APK文件。2、获取APK包中的信息通过PackageManage

1.7k 1
EditText
Android

EditText

EditTextAndroid EditText的设置1、属性EditText的一些属性:2、EditText不支持跑马灯 虽然EditText继承自TextView,但是EditText不支持设置android:ellipsize="marquee",如果这要设置,直接奔溃报错。既不能在代码中设置,也不能在布局xml文件中设置。看EditText的源码可以发现,如果给EditText设置跑马灯M

1.7k 4
IntentService使用详解
Android

IntentService使用详解

IntentService使用详解之前已经学习过Android的四大组件之一Service,但是Service和前台运行在一个进程里,不能再Service中执行耗时操作,否则需要开启线程,执行完毕之后再借助Handler传回到主线程处理,Android提供了很多线程间通信的消息机制。Google又进一步进行了封装,提供了IntentService,内部对Service和Handler进行了封装,做

1.9k 1
Android判断网络连接、监控网络状态
Android

Android判断网络连接、监控网络状态

Android判断网络连接、监控网络状态1、判断网络状态通过ConnectivityManager和NetworkInfo进行相关网络状态的判断。需要相应的权限。1.1、当前手机是否有网络连接1.2、WiFi网络是否可用1.3、当前手机移动网络是否可用1.4、当前网络连接的类型上面的那些方法目前为止都还可以使用(@SuppressWarnings("deprecation")),不过已经被Andr

3.1k