自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 修改开机动画开发小总结

本文介绍了如何替换Android设备的开机动画。系统会按优先级检查多个路径的bootanimation.zip文件,包括/oem、/product、/system等分区。通过分析源代码发现,设备会优先使用/product/media/bootanimation.zip。此外系统还支持自定义路径/data/mmm/bootanimation.zip,可通过设置persist.sys.mmm.bootanimation.switch属性启用。文章详细说明了动画文件结构、desc.txt配置格式以及系统加载动画的

2025-09-11 16:54:44 998

原创 Android 热点开发的相关api总结

热点开发属于,涉及的核心 API 多为系统签名权限保护(如),通常仅系统应用(如 Settings)可正常调用。实际开发中,除基础的开关、配置功能外,可能需要扩展自定义信道设置、频段切换等 Settings 未涵盖的功能。本文总结热点开发的核心流程、调试技巧及版本适配要点。

2025-09-07 17:59:07 499

原创 Wifi开发上层学习1:实现一个wifi搜索以及打开的app

Android WiFi控制应用开发 本文介绍了如何开发一个基本的WiFi控制应用,主要功能包括: 获取和修改WiFi状态 扫描并显示可用WiFi网络 记录和连接WiFi网络 开发要点: 需要添加WiFi状态访问和修改权限 Android 10+需位置权限,12+需附近设备权限 使用系统签名配置 界面包含开关、扫描按钮和列表视图 列表项显示WiFi名称、连接状态、信号强度和加密方式 该应用通过WifiManager API实现核心功能,可作为学习Android系统功能的入门实践。

2025-09-02 17:13:24 668

原创 volatile 关键字详解

Java中的volatile关键字主要用于解决多线程环境下的共享变量可见性问题。它确保线程对变量的修改能立即被其他线程感知,通过强制读写操作直接在主内存中进行,而非使用线程工作内存中的副本。volatile能保证可见性但无法保证原子性,因此不适合复合操作场景。相比synchronized(保证原子性和可见性)和atomic原子类(基于CAS实现原子操作),volatile是一种轻量级同步机制,适用于简单变量读写场景。此外,volatile还能在一定程度上防止指令重排序优化。实际开发中需根据具体需求选择适当的

2025-08-29 17:23:25 811

原创 Android进程之间的通信方法

Android进程间通信方法摘要 本文介绍了Android应用间三种通信方式:Intent、AIDL和ContentProvider。Intent通信通过显式/隐式Intent启动目标Activity并传递数据,适合单向简单通信;AIDL通过Service实现跨进程方法调用,支持复杂交互;ContentProvider提供数据共享机制。每种方式各有特点:Intent简单易用但功能有限,AIDL功能强大但实现复杂,ContentProvider专为数据共享设计。文中通过详细代码示例展示了Intent和AIDL

2025-08-29 08:51:01 1270

原创 Android事件分发机制

Android事件分发机制摘要 Android事件分发机制主要处理用户触摸屏幕时产生的事件传递和处理过程。事件包括ACTION_DOWN、ACTION_UP、ACTION_MOVE和ACTION_CANCEL四个基本动作,组合成事件序列。核心方法包括: dispatchTouchEvent():负责事件分发 onInterceptTouchEvent():ViewGroup中用于拦截事件 onTouchEvent():处理触摸事件 ViewGroup的dispatchTouchEvent()会先检查是否拦截

2025-08-26 15:31:50 328

原创 简单Launcher学习和实现

Launcher应用开发摘要 Launcher是Android系统的桌面应用,负责管理应用图标、启动应用并处理用户交互。本文介绍了Launcher的基本概念和实现方法: Launcher定义:特殊的Android应用,需声明HOME和DEFAULT Intent Filter,作为系统主界面入口。 架构设计:采用MVC模式,包含MainActivity、AppEntry数据模型和AppAdapter适配器三大组件。 核心功能: 获取应用列表:通过PackageManager或LauncherApps API

2025-08-25 16:16:22 602

原创 Android动画小补充

本文总结了Android动画实现的关键技术点,主要包括:1)通过继承ViewGroup重写dispatchDraw方法实现动画循环控制;2)使用invalidate()触发重绘形成绘制循环;3)采用模板方法模式设计Anim基类实现动画状态管理;4)优化内存管理防止泄漏;5)处理事件分发确保交互响应。文章还详细说明了动画实现的五个阶段流程,并解答了常见实现问题,如循环机制、内存优化等。

2025-08-20 17:31:16 1054

原创 Fragment重要知识点总结

本文总结了Android Fragment的核心知识点,包括生命周期、基本用法和交互方式。Fragment是可复用的UI组件,依赖于Activity,其生命周期比Activity更细化,包含视图创建和销毁的特定方法。Fragment可通过静态或动态方式加载,动态加载更灵活,需使用FragmentManager和FragmentTransaction进行操作。回退栈功能可保留Fragment状态,避免频繁重建。Fragment与Activity的交互通过Bundle参数传递或接口回调实现,前者用于Activi

2025-08-19 19:24:32 1270

原创 Handler以及AsyncTask知识点详解

Handler和AsyncTask是Android中实现线程间通信的核心机制。Handler通过消息队列(MessageQueue)和消息循环器(Looper)实现不同线程间的消息传递,常用于子线程与主线程通信,支持延迟任务,但需注意内存泄漏问题。AsyncTask是轻量级异步任务工具,封装了Handler和Thread,提供四个核心回调方法(onPreExecute、doInBackground、onProgressUpdate、onPostExecute)简化后台任务执行和UI更新流程,但生命周期需与A

2025-08-18 17:45:18 756

原创 安卓四大组件基础题

Android四大组件是应用开发的核心,包括Activity(用户界面)、Service(后台运行)、BroadcastReceiver(接收广播)和ContentProvider(数据共享)。Activity的生命周期涉及7个回调方法,有4种启动模式。Service分为前台/后台服务,可通过Binder与Activity通信。广播分为标准/有序两种,可静态或动态注册。ContentProvider实现跨应用数据共享,使用UriMatcher匹配URI。此外还介绍了组件间通信、进程优先级、Service保活

2025-08-16 21:15:00 1047

原创 安卓开发选择题

安卓开发选择题摘要 本文整理了安卓开发常见面试题,涵盖内存优化、性能分析、数据加密、ANR检测、功能实现等方面。内容包括:避免内存泄漏的方法(WeakReference、资源释放等)、分析内存工具(Android Profiler)、ListView优化(ViewHolder模式)、加密方式(AES/RSA/SHA)、ANR检测(日志与StrictMode)、应用内更新流程、通知功能实现(NotificationCompat)及崩溃日志收集(UncaughtExceptionHandler)。此外,详细解析

2025-08-16 16:37:11 680

原创 Andorid日志分析总结

Android日志分析摘要 Android日志系统主要分为Kernel、Radio、Event和Main四类日志: Kernel日志记录Linux内核信息 Radio日志记录通信相关日志 Main日志等同于DDMS中看到的应用日志 Event日志记录系统级事件 日志级别从低到高分为V(Verbose)、D(Debug)、I(Info)、W(Warn)、E(Error)、F(Fatal)、S(Silent)。可通过adb logcat命令配合-b参数抓取特定类型日志,如adb logcat -b radio抓

2025-08-13 17:51:15 1024

原创 Framework学习:周末小总结以及Binder基础

本文总结了Android系统架构与Binder机制的核心知识。首先介绍了Android的分层架构(硬件层到应用层)及Framework层的关键作用。重点解析了Binder的IPC机制,包括其高效传输、C/S架构和安全性特性。详细说明了核心进程(Init、ServiceManager、Zygote)的启动流程与功能,并厘清了Native层与Framework层的关系。最后提出了Framework开发的学习路径,强调源码阅读和实践验证的重要性。全文以Binder为主线,系统梳理了Android底层通信机制与架构

2025-08-10 16:53:58 750

原创 WMS及UI渲染底层原理学习

本文系统介绍了Android UI渲染的核心原理,包括:1) Zygote和System Server的系统进程基础;2) AMS管理应用进程的生命周期;3) WMS作为窗口管理核心的角色;4) UI绘制从invalidate到屏幕显示的完整流程;5) Activity、Window与View的协作关系;6) Surface、SurfaceFlinger等底层渲染机制。文章揭示了Android UI渲染的完整链路,从应用层到系统层的交互原理,为性能优化和问题定位提供了理论基础。通过窗口状态管理、视图测量布局

2025-08-06 19:22:15 1367

原创 系统初始化以及Zygote进程fork app进程的基础

本文分析了安卓系统启动流程及Zygote进程的核心作用。系统启动过程包括电源启动、BootLoader加载、Linux内核初始化、init进程创建文件目录和属性服务、Zygote进程启动Java虚拟机并注册JNI方法、SystemServer进程启动系统服务,最后Launcher启动用户界面。重点阐述了Zygote进程如何通过预加载基础资源(如Context、View等)实现快速fork应用进程,解释了使用Zygote而非init直接fork的原因在于资源复用和效率优化。这种设计使得应用进程能共享预加载资源

2025-08-05 18:01:41 622

原创 Android进程基础:Zygote

摘要: Zygote是Android系统的核心进程,主要承担进程孵化、预加载资源和内存优化三大功能。它作为所有应用进程的父进程,通过fork机制快速创建子进程,并预加载系统类、资源文件和共享库以提升启动效率。Zygote启动分为系统初始化(由init进程触发)和服务准备(预加载资源、启动SystemServer)两阶段,其工作原理基于fork+特化执行,利用Copy-on-Write机制共享内存,通过Socket通信接收进程创建请求,最终实现高效的应用进程孵化。

2025-08-04 18:58:01 626

原创 Android 权限管理基础:权限分类、动态权限申请

Android权限管理分为三类:安装时权限(普通操作)、运行时权限(危险操作如访问私人数据)和特殊权限(系统级操作)。运行时权限需动态申请,示例中通过checkSelfPermission()检测CALL_PHONE权限状态,未授权则调用requestPermissions()弹出授权对话框,并在onRequestPermissionsResult()中处理授权结果。授权成功执行拨号操作,拒绝则提示用户。这种机制保护了用户隐私和系统安全。

2025-08-01 17:36:47 634 1

原创 获取当前活动进程数量最近活跃应用数量等信息

Android进程信息获取方法总结 本文介绍了在Android 15系统上获取当前活动进程和最近活跃应用信息的多种方法。主要内容包括: 系统签名配置:由于Android 15的限制,需要给应用打上系统签名才能获取完整信息 关键权限声明:包括GET_TASKS、REAL_GET_TASKS、PACKAGE_USAGE_STATS等权限 五种进程信息获取方法: 获取运行中的进程数 获取运行中的任务数(需系统权限) 使用UsageStatsManager获取活跃应用数 获取今日活跃应用数 获取最近运行应用数 代码

2025-08-01 17:35:13 973 1

原创 Framework学习:PMS

本文介绍了Android系统中的PackageManagerService(PMS)核心功能与工作机制。PMS负责应用安装、卸载、更新、权限管理及应用信息查询等核心功能。文章详细解析了PMS的启动流程,包括SystemServer初始化、APK扫描解析、权限校验等关键步骤;分析了PMS的关键类如PackageParser、PackageInfo等数据结构;阐述了应用安装、卸载、权限管理等交互流程;并解答了10个PMS常见问题。最后通过一个实验案例,展示了如何通过修改PackageInstallerServi

2025-07-31 11:28:14 1413

原创 Android 系统核心服务:ActivityManagerService(AMS)

Android 系统核心服务 ActivityManagerService (AMS) 是 Framework 层的关键组件,负责管理应用生命周期、进程及四大组件运行。AMS 运行在 system_server 进程,通过 Binder IPC 与应用通信,主要功能包括 Activity 生命周期管理、进程管理、Service/Broadcast 管理、任务栈管理及 ANR 检测等。它在系统启动时由 SystemServer 初始化,并通过 ServiceManager 注册为系统服务。AMS 协调 Act

2025-07-30 22:15:00 1292

原创 用命令查看Android设备的 Linux 内核版本,了解其对应的硬件支持各种特性

本文介绍了通过ADB命令查看Android设备Linux内核版本及硬件特性的方法。主要内容包括:1)使用uname -a查看内核版本信息;2)通过dumpsys media.camera检测相机驱动支持情况;3)使用dumpsys wifi查看WiFi功能状态及相关参数;4)通过dumpsys nfc检查NFC支持状态和配置信息;5)查询红外发射器节点路径。这些命令可帮助开发者快速了解Android设备的底层硬件支持情况,为功能开发和调试提供便利。

2025-07-29 17:59:10 1255

原创 Android系统编译源码目录详解

安卓系统源码核心目录详解 本文系统梳理了安卓源码中的关键目录和文件,重点包括: 核心框架层:frameworks/base含四大组件实现,system存放系统服务,vendor用于厂商定制化代码 编译构建工具:build包含构建脚本,prebuilts提供预编译工具链,Android.bp定义模块编译规则 系统应用开发:packages存放系统应用源码,device包含设备适配配置 测试调试工具:test用于功能测试,development包含调试工具,out存放编译输出 其他关键文件:如bootstrap

2025-07-28 17:42:56 626

原创 Android 系统架构

Android系统采用分层架构设计,自上而下分为五层: 应用层:包含系统预装应用和第三方应用 应用框架层:提供四大组件(Activity/Service/ContentProvider/BroadcastReceiver)和核心系统服务 系统运行时库层:包含C/C++核心库(如OpenGL/SQLite)和ART虚拟机 硬件抽象层(HAL):为上层提供统一硬件接口,屏蔽硬件差异 Linux内核层:提供硬件驱动、进程管理等基础服务 各层协同工作,例如拍照时:应用层调用框架层API→通过运行时库→HAL接口→内

2025-07-28 17:41:27 797

原创 四大组件:Service学习

​ Service是Android中实现后台运行的解决方案,他非常适合执行那些不需要和用户交互且需要长期运行的任务。服务的运行不依赖任何的用户界面,即使程序被切换到后台,或者用户打开另外的应用程序,服务仍可以保持运行。​ 不过需要注意的是,服务并不是运行在一个独立的进程中的,二十依赖创建服务时所在的应用程序进程。当某个应用程序进程被杀死,所有依赖该进程的服务都会停止。​ 服务并不会开启线程,所有的代码都是默认运行在主线程当中的。

2025-07-25 17:11:43 1144 1

原创 Android网络请求,Retrofit,OKHttp学习

本文介绍了Android中使用WebView和HTTP协议进行网络请求的方法。主要内容包括: WebView的基本使用:通过WebView嵌入浏览器功能,展示网页内容,支持JavaScript脚本,并能通过WebViewClient实现网页跳转控制。 HTTP协议基础:解释了客户端-服务器交互的基本原理,包括请求发送、响应接收和数据处理过程。 HttpURLConnection的使用方法: 创建HttpURLConnection实例 设置请求方法(GET/POST) 配置连接参数(超时时间等) 获取和处理服

2025-07-23 20:02:06 1139

原创 四大组件:ContentProvider学习

本文介绍了Android运行时权限和内容提供器的核心用法。在运行时权限部分,详细讲解了如何通过ContextCompat.checkSelfPermission()检查权限、使用ActivityCompat.requestPermissions()申请权限,并处理onRequestPermissionsResult()回调的授权结果,以CALL_PHONE权限为例演示了完整流程。在内容提供器部分,指出其两种主要用途:访问其他程序数据(通过现有内容提供器)和为自身数据提供外部访问接口(创建自定义内容提供器)。

2025-07-22 17:37:05 640

原创 SQLite以及Room框架的学习:用SQLite给新闻app加上更完善的登录注册功能

本文介绍了SQLite数据库及其在Android开发中的应用,重点讲解如何通过SQLiteOpenHelper实现用户注册登录功能。文章首先概述SQLite的特性,包括嵌入式结构、零配置和单文件存储等优势,然后详细说明SQLite的五种数据类型。核心部分展示了使用SQLiteOpenHelper创建数据库的完整流程,包括:1)继承SQLiteOpenHelper类管理数据库版本;2)创建User数据模型类;3)编写UserDAO实现CRUD操作。示例代码演示了用户表创建、数据插入、查询和删除等关键操作,为移

2025-07-21 17:29:48 837 2

原创 SharedPreferences + 简单存储: 在新闻app的个人设置界面,添加注册和登录功能

本文介绍了Android中两种数据存储方式:文件存储和SharedPreferences。文件存储适合保存简单文本或二进制数据,通过openFileOutput()写入数据到内部存储目录,使用openFileInput()读取文件内容。SharedPreferences采用键值对形式存储数据,支持多种数据类型,比文件操作更便捷。文章详细说明了获取SharedPreferences对象的三种方法,以及使用SharedPreferences.Editor进行数据存储的步骤。这两种存储方式分别适用于不同场景,开发

2025-07-17 18:04:02 917 1

原创 在新闻资讯 APP 底部切换不同类型界面,部分界面可以通过 ViewPager 实现滑动切换

本文介绍了新闻资讯APP底部界面切换功能的实现过程。作者通过ViewPager实现部分界面的滑动切换,并分享了开发经验:开发顺序很重要,建议先规划好Activity和Fragment的嵌套关系。文章展示了完整的activity_main.xml布局代码,包含顶部搜索框和底部导航栏(首页、菜单、我的)的设计。在MainActivity中实现了Fragment切换逻辑,并附上了开发效果演示动图。作者特别强调了合理的开发流程:先在主布局中固定搜索框和底部导航栏,再处理Fragment容器,避免因顺序不当导致代码重

2025-07-16 17:39:37 2047 1

原创 在新闻资讯 APP 中添加不同新闻分类页面,通过 ViewPager2 实现滑动切换

摘要:本文介绍了在新闻APP中使用ViewPager2实现分类页面滑动切换的方案。核心采用ViewPager2组件(基于RecyclerView改进)管理多个Fragment页面,支持水平滑动和标签联动。实现步骤包括:1) 添加依赖库;2) 创建各分类对应的Fragment;3) 将原RecyclerView布局改为ViewPager2;4) 配置分类标签栏(TabLayout)与ViewPager2联动。文中提供了关键代码片段,如Fragment创建方法和ViewPager2布局文件示例,展示了热榜、关注

2025-07-15 17:42:26 609 3

原创 Android动画:属性动画以及实现点击图标缩放的动画效果

Android属性动画实现点击图标缩放效果 摘要:本文介绍了Android属性动画的基本概念和使用方法。相比补间动画,属性动画功能更强大,能够真正改变View的属性。主要讲解了属性动画的核心API(ValueAnimator、ObjectAnimator等)以及实现步骤。通过一个示例演示了如何使用ValueAnimator实现四种动画效果(直线移动、缩放、旋转透明、圆形旋转),其中重点展示了如何实现点击图标时的缩放动画效果。文中还提供了修改View位置的方法moveView(),以及通过设置监听器和插值器来

2025-07-14 19:20:10 781

原创 自定义view以及实现自定义进度条

Android自定义View开发指南:实现进度条与拖拽功能 摘要:本文介绍了Android自定义View的两种方式(继承系统控件或直接继承View)并重点演示了如何实现一个兼具条形和环形进度条的自定义控件。通过创建CustomProgressView类,初始化不同画笔绘制图形,在onDraw方法中实现进度条的动态绘制。该控件还支持进度设置方法和触摸拖拽功能,通过onTouchEvent处理用户交互事件。最后在XML布局中添加该自定义View即可使用。这种自定义方式灵活满足特定业务需求,是Android UI

2025-07-10 18:00:59 796 1

原创 Android四大组件:Broadcast

Android广播机制分为标准广播和有序广播。标准广播完全异步,所有接收器同时接收,效率高但不可截断;有序广播同步执行,按优先级顺序传递,可被前序接收器截断。系统广播可通过动态或静态注册监听,动态注册需在代码中创建接收器并关联IntentFilter,静态注册则在Manifest文件中声明,可实现开机启动等功能。自定义广播接收器需继承BroadcastReceiver并重写onReceive()方法。标准广播的发送和接收示例展示了基本的实现流程,而有序广播允许优先级控制和广播截断。

2025-07-09 18:52:05 2058 1

原创 ListView以及RecyclerView的学习以及电影排行榜的实现

本文介绍了Android中ListView和RecyclerView的使用方法,重点讲解了如何通过适配器实现数据与列表的绑定。主要内容包括:1) 使用ArrayAdapter实现简单文本列表;2) 自定义FruitAdapter适配器,通过重写getView()方法实现带图片的列表项;3) 详细说明LayoutInflater的inflate方法参数设置及自定义布局加载过程。文章还展示了如何在MainActivity中初始化数据并设置适配器,为后续实现电影排行榜功能奠定基础。

2025-07-08 19:34:01 700

原创 Activity各类控件学习小结:实现简单的用户界面

Android用户界面实现小结 本文介绍了如何构建一个简单的用户界面Demo,主要功能包括: 显示用户头像和基本信息 通过下拉框选择不同用户 添加新用户功能 关键控件使用: ImageView显示头像 Spinner实现用户选择下拉框 EditText获取用户输入 RadioGroup处理性别选择 LinearLayout嵌套布局 实现步骤: 准备10张图片资源 创建包含各类控件的布局文件 使用权重分配实现自适应布局 该界面实现了基本的用户信息展示和添加功能,可作为学习Android基础控件的参考案例。

2025-07-07 20:17:20 1191 1

原创 Android四大组件学习:详解Activity

本文详细介绍了Android四大组件之一的Activity及其基本用法,主要内容包括: Activity概念:作为用户界面组件,用于显示界面和实现交互操作,一个App通常包含多个Activity 基本使用技巧: Toast提示的实现方法 Menu菜单的创建和使用 Intent的两种使用方式(显式和隐式) Activity之间的数据传递和返回 重点技术细节: 通过findViewById获取控件实例 设置点击监听器处理用户交互 MenuInflater的使用方法 startActivity和startActi

2025-07-07 15:23:12 1039 1

原创 Android中实现两个Activity之间的数据传递的实现和总结

本文介绍了Android中通过Intent实现两个Activity之间传递文本数据的方法。核心步骤包括:在发送方Activity使用Intent.putExtra()添加数据,在接收方Activity通过getIntent()和getStringExtra()获取数据。文章提供了完整的代码示例,涵盖两个Activity的实现、布局文件和AndroidManifest配置。关键点包括:键名要保持一致、接收数据前检查是否存在、不同数据类型使用对应的获取方法。还简要提及了传递复杂数据(如自定义对象)的实现方式。这

2025-07-06 18:40:25 848 1

原创 LinearLayout 和 RelativeLayout 布局在同一个界面使用的示例和使用总结

Android布局实践:LinearLayout与RelativeLayout对比 本文展示了两种Android常用布局方式的使用示例。首先通过创建Empty Activity项目,手动添加布局文件,演示了LinearLayout的配置方法,包括权重分配、嵌套布局等特性。随后转向RelativeLayout实现相同界面,利用相对定位属性如layout_below、layout_alignParentStart等实现元素排列。两种布局方式各有优势:LinearLayout通过权重比例分配空间,适合简单线性排列

2025-07-06 17:30:14 750 1

原创 Android系统框架详解

Android系统采用分层架构设计,分为Linux内核层、程序库层、应用框架层和应用层。Linux内核提供基础系统服务,程序库包含多媒体、图形等核心功能,应用框架层提供API接口支持应用开发,最上层是用户应用。这种分层设计实现了高内聚低耦合,各层通过固定接口提供服务,下层变化不影响上层功能。Android还包含丰富的核心应用和开发工具,支持开发者利用系统功能构建多样化应用。

2025-07-04 15:59:42 851

空空如也

空空如也

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

TA关注的人

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