
Android高级UI
文章平均质量分 80
Android高级UI
斗锋在干嘛
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android中ListView/RecyclerView滚动性能深度优化指南
通过系统化应用这些优化策略,可显著提升列表滚动性能。使用Android Studio Profiler持续监控。在低端设备上进行真机测试。根据用户反馈持续调优。原创 2025-05-01 09:04:23 · 340 阅读 · 0 评论 -
Android中的Ripple效果深度解析与实现指南
- 使用主题色 -->-- 非波纹状态下的背景 --></shape></item></ripple>样式资源效果特点适用场景?有界波纹,保持视图形状列表项、卡片?无界波纹,超出视图边界浮动按钮、图标?工具栏专用波纹ActionBar按钮XML属性对应方法效果控制setColor()波纹主色调波纹最大半径setMask()限制波纹形状-- 圆形按钮的Ripple --></shape></item></ripple>原创 2025-05-01 08:57:23 · 612 阅读 · 0 评论 -
Android中的StateListDrawable深度解析与应用
创建-- 按压状态 -->-- 禁用状态 -->-- 默认状态(必须放在最后) -->// 自定义视图需重写drawableStateChanged()background?.state = drawableState // 传递状态给Drawable// 添加自定义状态。原创 2025-05-01 08:52:13 · 494 阅读 · 0 评论 -
Android高效图片加载库实现深度解析
实现高效图片加载库的关键在于。根据设备性能动态调整缓存大小。建立完善的监控体系持续优化。实现智能的内存回收策略。优先使用硬件加速解码。原创 2025-04-30 13:49:56 · 255 阅读 · 0 评论 -
Android中View与ViewGroup的区别及使用场景解析
/ 测量所有子View// 计算自身尺寸...// 层叠布局逻辑。原创 2025-04-30 12:54:52 · 428 阅读 · 0 评论 -
View.inflate过程与异步Inflater解析
同步inflate基本流程原创 2025-04-22 15:21:32 · 802 阅读 · 0 评论 -
ScrollView嵌套RecyclerView问题深度解析
Override// 禁用自身滚动// 设置给RecyclerView进阶回答"我们团队曾通过自定义LayoutManager解决这个问题,核心是:重写返回false配合手动计算所需高度并动态设置但这种方法需要精确计算内容高度,对动态数据支持不够友好"根本原因测量机制冲突导致复用失效滑动事件优先级不明确解决方案优先级✅ 首选:重构布局避免嵌套(90%场景适用)⚠️ 次选:固定高度 + 禁用嵌套滑动(快速修复)❌ 避免:NestedScrollView万能论进阶展示能分析源码级原理。原创 2025-04-22 15:14:03 · 936 阅读 · 0 评论 -
Android事件拦截机制与onClick执行条件解析
Android要求处理事件必须消费整个DOWN→MOVE→UP序列。这种分层设计符合开放封闭原则(对扩展开放,对修改封闭)View处于PRESSED状态(由DOWN事件设置):表示不消费事件,事件会继续向上传递。不会将View添加到触摸事件目标链表。移除不必要的clickable属性。后续UP事件不会分发给该View。接收到完整的DOWN和UP事件。:表示消费事件,事件终止传递。子View控制 → 使用。是事件分发的总控开关。是默认的事件处理实现。父容器控制 → 重写。更精准地控制触摸事件。原创 2025-04-22 13:52:21 · 826 阅读 · 0 评论 -
View事件处理顺序深度解析
在Android的View体系中,触摸事件的传递和处理遵循特定的顺序规则,理解这些顺序对处理复杂的手势冲突至关重要。:如果onTouch返回true,将不会调用onTouchEvent,进而不会触发onClick。每次事件都会创建新Lambda对象(Java 8)包含完整的点击状态管理(pressed状态等)(ViewGroup特有):决定是否拦截。适合需要快速响应或拦截的场景。需要完整事件处理 → 重写。需要快速拦截 → 使用。更精准地处理触摸事件。原创 2025-04-22 13:48:27 · 713 阅读 · 0 评论 -
PMS在安装APK的时候干的事情
PMS在安装时记录所有Activity声明,AMS启动前会通过PMS校验,未声明则直接抛异常。“PMS维护权限数据库,动态权限的授予和校验均通过PackageManager查询PMS完成。用户在设置中授予/撤销权限时,PMS会更新权限状态并通知AMS重启应用进程(部分权限需重启生效)。提取包名、版本号、权限、四大组件(Activity/Service等)信息,并存入内存数据库。“PMS负责APK拷贝、解析清单、签名验证、DEX优化,并更新系统数据库和广播结果。广播,通知系统和其他应用(如桌面更新图标)。原创 2025-04-09 17:20:41 · 575 阅读 · 0 评论 -
Android二维码扫描集成与专题解析
Q:"华为ScanKit相比ZXing有哪些技术优势?Q:"如何设计支持多引擎的扫码模块?华为自研的"超分算法"提升模糊识别率。识别其他APP生成的二维码。多帧融合技术处理动态模糊。同时识别条形码和QR码。基于NPU的硬件加速。原创 2016-07-19 17:43:36 · 529 阅读 · 1 评论 -
Android尺寸单位详解(px/dp/dip/sp)
1.px (像素):屏幕上的点 ,与密度相关。密度大了,单位面积上的px会比较多。2.dip或dp(与密度无关的像素)。这个和设备硬件有关,为了支持WVGA、HVGA和QVGA 推荐使用这个。一种基于屏幕密度的抽象单位。设置一些view的宽高可以用这个,一般情况下,在不同分辨率,都不会有缩放的感觉。如果用px的话,320px占满HVGA的宽度,到WVGA上就只能占一半不到的屏幕了。3.sp原创 2016-07-15 17:43:51 · 490 阅读 · 0 评论 -
Android SurfaceView 深度解析
SurfaceView:独立Surface,直接由SurfaceFlinger合成。Q:"SurfaceView与TextureView如何选择?Q:"SurfaceView的WMS(窗口管理服务)交互过程?TextureView:作为普通View由硬件加速渲染。SurfaceView消耗约2-3个帧缓冲区。TextureView占用GPU内存更多。减少画面撕裂(Tearing):默认置于宿主窗口下方,可通过。支持60fps以上高性能渲染。:前后帧绘制间隔过长。原创 2016-07-15 17:32:35 · 1053 阅读 · 0 评论 -
Android开发中大图片所引起的内存溢出问题
在android开发中,一个应用使用的内存大小是有限制的.在应用中,如果大量的使用bitmap就很可能导致内存溢出的问题。要是使用Gallery来显示多张不同的图片,在给Gallery的每个Item设置图片的时候,想到Bitmap如果不手动的recycle,系统是不会回收它所在的资源的,因为android为了提高效率,bitmap真正的位图数据是在ndk中用C写的,所以就直接使setImageRe原创 2015-10-26 14:32:30 · 452 阅读 · 0 评论 -
对Android Intent传递对象参数的两种方式的理解
分别需要使实体类实现Serializable接口、Parcelable接口,而Serializable接口,Parcelable接口分别在什么时候用:使用Serializable接口的情况:Serializable接口能将数据存储在磁盘上,同时Serializable接口在外界有变化的情况下能很好的保存数据的持续性,Parcelable接口则不行。使用Parcelable接口的情况原创 2015-10-27 20:35:11 · 1231 阅读 · 0 评论 -
Android ContentProvider 深度解析
1.适用场景1) ContentProvider为存储和读取数据提供了统一的接口2) 使用ContentProvider,应用程序可以实现数据共享3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等)2.相关概念介绍1)ContentProvider简介 当应用继承Cont原创 2015-11-04 21:24:56 · 425 阅读 · 0 评论 -
Android Socket 使用详解
在客户/服务器通信模式中, 客户端需要主动创建与服务器连接的 Socket(套接字), 服务器端收到了客户端的连接请求, 也会创建与客户连接的 Socket. Socket可看做是通信连接两端的收发器, 服务器与客户端都通过 Socket 来收发数据.这篇文章首先介绍Socket类的各个构造方法, 以及成员方法的用法, 接着介绍 Socket的一些选项的作用, 这些选项可控制客户建立与服务原创 2015-11-08 16:51:17 · 1335 阅读 · 0 评论 -
Android搜索控件的基本使用方法
在Android中,搜索是一个非常核心的功能,我们可以通过它搜索到任意我们可以获得的信息。这些信息可以是存储在手机中的联系人、文件等信息,也可以是在网络上的资源。 Android为了给用户提供良好的搜索体验,特意提供了一个搜索框架来方便开发者在自己的App中集成搜索功能。那么接下来我就学习一下这个搜索框架。 在Android的搜索框架中为我们提供了两种原创 2015-11-25 18:42:31 · 557 阅读 · 0 评论 -
六种值得学习的android开发框架
1、volley (1) JSON,图像等的异步下载; (2) 网络请求的排序(scheduling) (3) 网络请求的优先级处理 (4) 缓存 (5) 多级别取消请求 (6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)2、android-async-http (1) 在匿名回调中处理请求结果 (原创 2016-02-03 23:19:11 · 1079 阅读 · 0 评论 -
ShareSDK集成第三方登录与分享全解析
Q:"如何设计一个可扩展的第三方登录系统?Q:"多平台SDK如何减少包体积影响?Q:"如何处理微信未安装的情况?原创 2016-05-16 20:02:29 · 727 阅读 · 0 评论 -
Android消息推送方案深度解析
准备实际数据:"在我们电商APP中,通过厂商通道集成使华为设备到达率从82%提升至98%"技术决策依据:"选择极光是因为其支持11家国内厂商通道自动切换"基于网络状态的差异化策略(Wi-Fi vs 蜂窝数据):极光/个推 + 厂商通道(华为/小米/OPPO等)自适应心跳间隔(从15分钟到6小时动态调整)Q:"如何设计一个高到达率的推送系统?Q:"推送服务如何降低电量和流量消耗?第一层:厂商系统通道(华为/小米)第二层:FCM/极光等第三方通道。重要程度分级(延迟非紧急消息):FCM + 极光海外版。原创 2016-07-15 17:28:29 · 4087 阅读 · 1 评论 -
Android数据存储方式全面解析
1.SharedPreferences:用来存储”key-value paires“格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型.2.文件存储:通过FileInputStream和FileOutputStream对文件进行操作.在Android中,文件是一个应用程序私有的,一个应用无法读写其他应用程序的文件.3.SQLite数据库存储:Android提供的一个标准数据库原创 2015-11-05 14:21:20 · 676 阅读 · 0 评论