BAT Android面试关键点:ListView优化、安全问题与APK瘦身

版权申诉
0 下载量 87 浏览量 更新于2024-08-19 收藏 295KB PDF 举报
"这份PDF文件主要涵盖了Android面试中的一些核心问题,包括ListView的优化、Android安全问题以及APK包大小的缩减策略,并提及了对称加密和非对称加密的概念。" 1. **ListView的优化** - **优化布局**: 保持Item布局简单,减少嵌套层次,使用Hierarchy View工具进行检查和优化。 - **convertView复用**: 通过convertView的复用来避免频繁创建新的View,提高滚动性能。 - **ViewHolder模式**: 使用ViewHolder来缓存视图引用,减少findViewById的操作。 - **异步加载图片**: 当item中包含图片时,使用异步加载技术(如 Glide 或 Picasso)防止阻塞主线程。 - **快速滑动策略**: 在快速滑动时不加载或显示占位符图片,减少内存消耗。 - **图片压缩**: 对图片进行适当压缩,减小内存占用。 - **分页加载数据**: 只加载可视范围内的数据,避免一次性加载大量数据导致内存压力。 2. **Android安全问题** - **错误导出组件**: 不要随意导出应用组件,防止恶意程序调用。 - **参数校验**: 对输入参数进行严格校验,防止注入攻击。 - **WebView安全**: 注意WebView可能带来的JS注入风险,及时更新Webview并限制其权限。 - **混淆与防二次打包**: 应用混淆技术,防止反编译和二次打包。 - **敏感信息加密存储**: 不要明文存储关键信息,如密码、密钥等,应使用加密手段存储。 - **HTTPS正确使用**: 确保HTTPS的配置正确,防止中间人攻击。 - **权限管理**: 仅申请必要的权限,避免滥用。 - **内存泄露检测**: 定期检查并修复内存泄露问题,避免应用卡顿或崩溃。 - **签名安全**: 使用release签名发布应用,避免使用debug签名。 3. **缩减APK包大小** - **良好编程习惯**: 删除冗余代码,避免不必要的库。 - **Proguard混淆**: 混淆代码,移除未使用的类和方法,优化代码体积。 - **精简Native库**: 只保留必要的armeabi和x86架构,考虑移除x86支持。 - **使用Lint工具**: 查找并删除未使用的资源。 - **图片优化**: 使用tinypng等工具预处理图片,根据需要选择jpeg或png格式。 - **9-patch图片优化**: 优化9-patch图片的拉伸区域,减少大图使用。 - **差异化资源提供**: 针对不同分辨率提供必要的图片资源,避免冗余。 - **重用图片资源**: 利用代码实现图片旋转,避免为对称图片提供多个版本。 - **减少动画图片**: 减少大量图片组成的动画,尝试使用代码实现动画效果。 4. **加密方式** - **对称加密**: 使用相同的密钥进行加密和解密,如DES,速度快但密钥管理复杂。 - **非对称加密**: 使用一对公钥和私钥,公钥加密,私钥解密,如RSA,安全性高但计算量大。 这份资料是针对Android开发者面试准备的,包含了实际开发中常见的性能优化和安全实践,以及基础的加密原理,对于提升面试者的技术水平和面试表现非常有帮助。