搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
2023面试高手
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
数据结构与算法(九):分治与回溯算法_分治和回溯
2
Vue2系列教程——路由守卫_vue2路由守卫
3
Python——ASCII编码与Unicode(UTF-8,UTF-16 和 UTF-32)编码_python 编码unicode utf-8
4
【夏虫语冰】测试服务器端口是否打开(命令行、Python)_端口测试
5
SSM+汽车销售平台 毕业设计-附源码171619_投诉建议功能模块
6
面试题-项目(各种项目地址汇总),2024年最新java电商面试
7
python毕业设计:基于python的城市轨道交通线路查询系统_地铁查询系统python
8
Unity中Newtonsoft.Json的使用(三)_unity newtonsoft.json jobject
9
unity中鼠标与物体的交互_使用unity设计鼠标点击选中后,物体随鼠标移动,再次点击放置物体的交互。
10
基于深度学习的30种常见的水果识别_水果识别的数据集
当前位置:
article
> 正文
Android性能优化及安全要点_安卓安全性,性能,服务等方面需求有哪些
作者:2023面试高手 | 2024-06-07 09:05:48
赞
踩
安卓安全性,性能,服务等方面需求有哪些
性能优化方向
内存
内存泄露,在组件中使用线程时会出现内存泄露,RxJava bindLifeCycle解决此问题,使用Handler时,RxJava可以解决。
Activity或者Fragment结束的时候,关闭动画,Dialog等
LeakCany监测内存泄露。流、游标等关闭
图片占用内存,采用低质量加载,缩小加载,网络图片可以考虑服务器动态压缩图片尺寸。Bitmap使用完毕要及时释放。
缓存的使用,加载比较消耗资源或者经常使用的数据考虑使用缓存,但要注意内存不足的时候及时释放
使用Android专用数据结构,SparseArray、ArrayMap
onTrimMemory中释放部分资源
网络接口返回数据尽量精简,实体类中尽量只包含必须字段。
Intent避免携带大量数据,如必须建议采用EventBus
CPU
避免CPU做一些无用的计算,比如
使用短路与&& ||
缓存,以空间换时间
UI
减少布局嵌套层级,使用ViewStub,merge标签,使用RelativeLayout、ConstrintLayout
布局背景布要重复设置,父布局已经设置了子布局布要设置同样的背景颜色。
尽量使用自建Drawable来替代图片设置背景。
多线程
多线程,使用线程池,避免重复创建线程及上下文切换的开销。
耗时操作尽量在子线程中进行,比如接口返回数据解析以及处理都应在子线程中,直到渲染到View时切回UI线程。
线程池不要使用Executors自带的方法,而是使用new ThreadPoolExecutor()方式创建。
FixedThreadPool和SingleThreadPool允许的请求队列长度为Integer.MAX_VALUE,会导致堆积大量请求,进而OOM
CacheThreadPool和ScheduledThreadPool允许创建的线程数为Integer.MAX_VALUE,会导致创建大量线程,进而OOM
Application初始化的时候加入进程判断,单一进程仅初始化自己需要的资源。
1、使用APP,观察不流畅,卡顿的情况
2、检查代码,寻找问题
3、再使用再观察
4、仍有问题,则使用AndroidStudio上的性能分析工具,监测内存和CPU使用比较高的地方,dump出内存快照进行对比
工具AndroidStudio、MAT、开发者选项中的过度渲染,CPU过度使用等开关
安全:
allowBackup设置为false
debugable设置为false
Https HostNameVerifer的verify方法里面做合法校验
打包使用V2签名,将对APK的修改做更多保护。
组件无严格权限控制的情况下exported设为false
不要把敏感信息打印在log中,
秘钥不能硬编码在程序中,应使用Android自身的秘钥库(KeyStore)机制或更安全的方式保存。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/2023面试高手/article/detail/684754
推荐阅读
article
用
Kivy
和
Buildozer
生成
Android
APK
_
buildozer
打包
apk
...
从一无所有开始环境Ubuntu 19.04 Disco DingoPython 3.7.3kivy 1.10.1buil...
赞
踩
article
6.3
Android
打包_使用
Buildozer
打包成
apk
_
buildozer
打包
apk
...
使用
Buildozer
可以自动构建整个打包的过程,该软件会自动下载并设置 python-for-android的必备...
赞
踩
article
深入分析
Android
Activity
(一)...
Activity
是
Android
应用程序的核心组件之一,负责管理用户界面和用户交互。通过生命周期方法、启动模式、视图...
赞
踩
article
Android
中
资源
文件夹
RES/RAW和
ASSETS
的
使用
区别_
raw
文件夹
...
/ 读取res/
raw
/example.txt文件内容try {= null) {*res/
raw
:适用于简单的
资源
文件...
赞
踩
article
Android
Gems
— Java
源码
分析之
HashMap
和
SparseArray
_
gems
源码
...
SparseArray
是Google为了提高性能替换
HashMap
而推荐使用的容器类,本文从
源码
的角度来了解一下两种容器...
赞
踩
article
Android
Studio
说:使用
HashMap
不如使用
SparseArray
?_androids...
!最后放上一个大概的
Android
学习方向及思路(详细的内容太多了~),提供给大家:对于程序员来说,要学习的知识内容、技...
赞
踩
article
android
替代
map
,
Android
为什么推荐
使用
SparseArray
来替代 Hash...
Android
为什么推荐
使用
SparseArray
来替代
HashMap
?
SparseArray
也许你没听过, ...
赞
踩
article
Android
Studio
说:使用
HashMap
不如使用
SparseArray
?,12年高级
工程师
...
那我们该怎么做才能做到年薪60万+呢,对于程序员来说,只有不断学习,不断提升自己的实力。我之前有篇文章提到过,感兴趣的可...
赞
踩
article
Android
基础
SparseArray
和
ArrayMap
(
HashMap
替代)_andr...
在某些情况下他们比
HashMap
更加高效,对内存也进行了优化,所有可以用来代替
HashMap
使用例子:SparseArr...
赞
踩
article
数据结构
HashMap
(
Android
SparseArray
和
ArrayMap
)_growing...
HashMap
也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式...
赞
踩
article
Android
SparseArray
与
HashMap
与
ArrayMap
的性能差别_
android
...
google官方推荐,当使用
HashMap
时,Key值为整数类型时,建议使用
SparseArray
的效率更高下面我们来见...
赞
踩
article
Android
Studio
说:使用
HashMap
不如使用
SparseArray
?
,
Android
岗...
/如果目标位置还未赋值
,
则直接存入数据即可
,
对应的情况是 2.1return;//以下操作对应 2.1、2.2 两种情况...
赞
踩
article
android
老年
机
系统,打造最实用
的
老年
机
:
安卓篇
...
打造最实用
的
老年
机
:
安卓篇
小米 手
机
青春版
老年
机
一些回忆手上有一台小米手
机
1青春版,2012年中旬
的
一次活动中偶尔抢...
赞
踩
article
android
自定义
dialog
背景
透明及
显示
位置设置,
android
自定义
Dialog
背景
透明...
先贴一下
显示
效果图,仅作参考:代码如下:1、
自定义
Dialog
publicclassSelect
Dialog
extend...
赞
踩
article
Android
-自定义
dialog
_
android
自定义
dialog
...
在项目中, app没有用原生的Dialog去弹起一个弹窗,在本地new 一个 PhoneWindow去实现
dialog
的...
赞
踩
article
android
如何
自定义
dialog
,Android—
自定义
Dialog
...
在 Android 日常的开发中,
Dialog
使用是比较广泛的。无论是提示一个提示语,还是确认信息,还是有一定交互的(...
赞
踩
article
android
自定义
dialog
样式
,Android
自定义
dialog
类...
首先定制style
样式
styles.xml 加入
自定义
样式
@nulltruetruetrue@color/transp...
赞
踩
article
[
trouble
-
shooting
]
android
无法启动X86模式
虚拟机
的
问题解决。...
最近使用
android
模拟器
的
时候遇到了一个问题,
android
原生
的
x86架构模式
的
虚拟机
无法启动,提示不支持int...
赞
踩
article
深度剖析
Comate
智能
产品:科技巧思,实用至上_
baidu
comate
android
stud...
市面上现在有很多
智能
代码助手,当时互联网头部大厂百度也不例外,百度也有员工都在用并且都说好的 Baidu
Comate
。...
赞
踩
article
android
studio
安装
lombok
插件
_
android
studio
中引入
lombok
...
由于 AS 不是基于 IDEA release 版本进行开发的,因此
lombok
对idea的
插件
可能再as中无法查看到。...
赞
踩
相关标签
kivy
buildozer
android
python
activity
res/raw
assets
使用场景
区别
java
hashmap
源码
sparsearray
android studio
算法
android 替代map
array
map