
AsyncTask:异步任务
AsyncTask:异步任务多线程开发在Android中很常见,网络请求,图片加载,JSON解析等等。而且Android也提供了非常丰富的多线程方法,Thread、Runnable、Handler等等。AsyncTask更进一步做了封装,直接开启一个任务,内部在子线程中处理耗时任务。还能在UI线程中更新界面。关于AsyncTask的原理参考《源码颇析AsyncTask工作原理》。1、AsyncTa
分类
深入探讨 Android 系统的核心架构与高级开发,聚焦四大组件(Activity、Service、Broadcast Receiver、Content Provider)的原理、生命周期管理和交互机制。从基础的组件构建与通信,到 Android Framework 层(如 AMS、WMS、PMS)的源码剖析和自定义扩展,提供详尽代码示例、调试技巧和性能优化策略。涵盖 JNI、AIDL、Binde
共 356 篇文章

AsyncTask:异步任务多线程开发在Android中很常见,网络请求,图片加载,JSON解析等等。而且Android也提供了非常丰富的多线程方法,Thread、Runnable、Handler等等。AsyncTask更进一步做了封装,直接开启一个任务,内部在子线程中处理耗时任务。还能在UI线程中更新界面。关于AsyncTask的原理参考《源码颇析AsyncTask工作原理》。1、AsyncTa
Google Breakpad 崩溃收集系统详解Google Breakpad 是一套开源的跨平台崩溃报告系统,由客户端库、符号卸载器和 Minidump 处理器三大组件构成。它能在应用程序崩溃时生成紧凑的 dump 文件,并通过符号解析还原出可读的 C/C++ 堆栈跟踪,是 Native 层 Crash 收集的行业标准方案。1、工具概述在 Android 开发中,JNI 层的 Crash 问题一

PreferenceScreen 设置项应用一般都有设置界面,这些通常通过SharedPreference保存在手机上(SharedPreference参考Android存储相关:SharedPreference),界面也要单独写。好在Android为我们提供了一个强大的设置界面PreferenceScreen。通过这个构建设置页面,点击界面切换设置的同时,后台也自动保存了相关数据。1、Prefe

输入法Android中输入法弹框是比较常见,但也时不时遇到各种问题。页面已经退出了输入法的输入框莫名其妙的还在,经常在各种APP中遇到这种情况。有时打开一个页面,需要输入内容,这时候如果自动弹出输入框,用户体验也比较好,但是有时候会出现输入框不能自动弹出或者弹出又立马收起的情况。 等等各种玄学问题。1、EditText获得焦点自动弹出输入法只需要设置两处即可让EditText自动弹出输入法,①设置
SensorAndroid设备支持种类众多的传感器,诸如光线传感器、加速度传感器、磁场传感器、压力传感器等等。应用场景很丰富,比如用在手机自动调整亮度、游戏里的方向控制等等。1、SensorManager传感器管理类,管理手机上的各种传感器。这个类提供的各种方法可以访问传感器列表、注册或解除注册传感器事件监听、获取方位信息等。通过getSystemService()获取SensorManager实

AudioManager顾名思义,音频管理器,是Android中定义的类,方便我们设置手机中的各种音频。如多媒体音量获取和调节、设置铃声等。获取AudioManager实例,调用Context中的方法:AUDIO_SERVICE获取AudioManager对象,该静态变量在Context中的定义如下。Context中还定义很多其它类型参数,这里不再详述。AudioManager类中定义了丰富的AP

网格视图:GridView拥有很多属性,都可以在布局中设置,也可以在代码中设置:代码:setStretchMode(int stretchMode)设置列表项如何拓展填充闲置空间的方式。可以设置下面常量值中的一个:常量值描述none0扩展无效spacingWidth1列与列之间的空间被扩展columnWidth2每一列被相等的拓展spacingWidthUniform3列与列之间的空间被均匀的扩展

拖动进度条SeekBar以前用到的ProgressBar都是显示给用户看的,用户不能操作。像视频进度条、音量控制条都是可以给用户操作,根据用户设定的值再操作。Android提供了这样的控件SeekBar。1、布局添加SeekBar的用法很简单,先看布局文件:2、代码设置给SeekBar对象添加一个SeekBar.OnSeekBarChangeListener监听器:效果:还可以通过设置drawab

安全性要求比较高的APP,一般会禁止在某些页面Activity进行截图,诸如农业银行的APP。加上下面的flag即可:在Activity的onCreate()方法给Window加上flag:WindowManager.LayoutParams.FLAG_SECURE尝试截图的时候会提示“由于应用限制,该界面无法截图”,录屏的时候也会提示失败参考博客: 《Android之禁止APP截图、录屏》 An
apk打包之前根据自己的需要,进行版本号、版本名称设置。android studio 设置是于build.gradle文件的中设置。在Activity中可以直接调用getPackageManager()方法来获取PackageManager对象,这是Context的子类ContextWrapper中的getPackageManager()方法。源码:PackageManager类中的getPack
Android ProGuard 代码混淆详解ProGuard 是 Android 开发中常用的代码混淆工具,它通过检测和移除未使用的类、字段、方法,优化字节码,以及用短名称混淆类名和方法名,使 APK 难以被逆向工程。本文从启用配置到混淆规则编写,全面介绍 ProGuard 的使用方法。1、ProGuard 的作用ProGuard 提供三大核心功能: • 压缩(Shrink):检测并移除未使用的

启动Activity的几种方式启动Activity一般借助Intent,不仅可以启动本应用内的Activity,还可以启动第三方应用的Activity。启动还可以给Intent加上指定的flag,参考Activity启动的Flag。1、Intent显示启动一般启动本应用内的Activity可以使用这种方式,因为知道类名。显示启动也有多种方式,不过变来变去都一样。创建启动Activity用到的Int

CoordinatorLayout及高级菜单栏AppBarLayout、CollapsingBarLayout1、协调布局CoordinatorLayout安卓Material Design库中一个比较难的控件就是CoordinatorLayout协调布局。协调布局CoordinatorLayout继承自ViewGroup,类似于RelativeLayout。1.1、协调布局属性协调布局有两个重要
Android ViewPager 切换动画详解:PageTransformer 从原理到实战ViewPager 默认的页面切换只是"水平平移",朴素到几乎没存在感。想做出"缩放淡化""3D 深度""旋转翻转"这类炫酷效果,靠的就是 PageTransformer——一个只有单个方法的接口,却是 ViewPager 动画的灵魂。本文从 position 参数的数学含义讲起,到两个官方经典实现、再到