首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 优化——存储优化

Android 优化目录 ---- 交换数据格式 Google 推出的 Protocal Buffers 是一种更轻便高效的存储结构,但消耗内存较大。...数据优化 使用 StringBuilder 代替 String 查询时返回更少的结果集及更少的字段 查询时只取需要的字段和结果集,更多的结果集会消耗更多的时间及内存,更多的字段会导致更多的内存消耗...异步线程 Android数据不多时表查询可能耗时不多,不会导致 ANR,不过大于 100ms 时同样会让用户感觉到延时和卡顿,可以放在线程中运行,但 sqlite 在并发方面存在局限,多线程控制较麻烦...SQLiteStatement 使用 Android 系统提供的 SQLiteStatement 来插入数据,在性能上有一定的提高,并且也解决了 SQL 注入的问题。...善于使用存储过程,它使 sql 变得更加灵活和高效 (Sqlite 不支持存储过程) 其它通用优化 经常用的数据读取后缓存起来,以免多次重复读写造成“写入放大” 子线程读写数据 ObjectOutputStream

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

Android 优化——网络优化

Android 优化目录 ---- 利用 Network Profiler 检查网络流量 接口设计 API设计 App 与 Server 之间的 API 设计要考虑网络请求的频次,资源的状态等...考虑使用 Protocol Buffer/flatBuffer 代替 JSON 图片的 Size 图片相对于接口请求来说,数据量要大得多。故而也是需要优化的一个点。...例如可能一个界面需要请求多个接口,或是网络良好,处于 Wifi 状态下时我们想获取更多的数据等。...弱网优化 除了正常的网络优化,还需考虑到弱网情况下 App 的表现。 一般来说,网络延迟在 60ms 内是 OK 的,超过 200ms 就比较糟糕了。...弱网优化,本质上是在弱网的情况下能让用户流畅的使用。 压缩/减少数据传输量 利用缓存减少网络传输 针对弱网(移动网络),不自动加载图片 界面先反馈,请求延迟提交。

1.7K10

Android 优化——电量优化

Android 优化目录 ---- Android 5.0 后用 Battery Historian 工具分析电量。...因此,对于一个典型的移动网络设备,每个数据传输都会导致网络模块消耗 20 秒的电量。 WakeLock Android 系统本身为了优化电量的使用,会在没有操作时进入休眠状态,来节省电量。...优化建议 优化网络请求 在蜂窝移动网络下,最好做到批量执行网络请求,尽量避免频繁的间隔网络请求,尽量多地保持在 Radio Standby 状态。...因为这是一个持续广播,无需写 Receiver,可以直接通过 intent 获取相关数据。...可以在代码中调起电量优化的设计页面,让用户选择是否将应用加入白名单,以在 Doze 模式下能够做一些事情。

1.2K20

Android 优化——内存优化

Android 优化目录 ---- 优化的意义 减少 OOM,提高应用稳定性。 减少卡顿,提高应用流畅度。 减少内存占用,提高应用后台运行时的存活率。 减少异常发生,减少代码逻辑隐患。...类的静态变量持有大数据对象 静态变量长期维持对象的引用,阻止垃圾回收,如果静态变量持有大的 数据对象,如 Bitmap 等,就很容易引起内存不足等问题。...leakcanary-android-no-op 中没有的 API。...RGB_565 会损失较多的图片数据,但除了大图,一般看不出什么区别。但它不支持 PNG 图片的透明通道。...ARGB_4444 减少一半的数据,但保留了透明通道,视觉差异变化较大,一般用于用户头像,特别是圆角头像。 Aplha_8 主要用于 Alpha 通道模板,相当于做一个染色。

1.4K10

Android性能优化-渲染优化

通常来说,帧率超过刷新频率只是一种理想的状况,在超过60fps的情况下,GPU所产生的帧数据会因为等待VSYNC的刷新信息而被Hold住,这样能够保持每次刷新都有实际的新的数据可以显示。...这是一个很费时的操作,GPU的引入就是为了加快栅格化的操作 Android在性能优化已经做了很多工作。在CPU将Ploygons和Texture传递到GPU是一个很耗时的过程。...那么怎么来分析我们的计算优化呢? 首先一个很简单,可以看看是否在执行某个操作的时候,过分的压榨了CPU的使用率,我们通过Android Monitor可以看到瞬时的CPU的使用率。...现在,我们选择一个特定的方法,我们跳转到跟踪视图窗口的底部,这里,我们看到一些分析数据显示出来。我们可以看到哪些方法调用了我们选定的方法。...1)通过AS的Tools-Android-Android Device Monitor调起 ?

1.4K20

android内存优化

Android的应用被限制为最多占用16m的内存,至少在T-Mobile G1上是这样的(当然现在已经有几百兆的内存可以用了——译者注)。它包括电话本身占用的和开发者可以使用的两部分。...Android能在内存中保持的应用越多,用户在切换应用的时候就越快。...作为我的一项工作,我仔细研究了Android应用的内存泄露问题,大多数情况下它们是由同一个错误引起的,那就是对一个上下文(Context)保持了长时间的引用。    ...在一个合格的Android应用中,你通常能够用到两种上下文(Context):活动(Activity)和应用(Application)。...这样的结果就是Android会从资源中重新载入应用的UI。现在想象一下,你写了一个应用,有一个非常大的位图,并且你并不想在每次旋转时都重新载入。

85970

Android优化指南

ListView的优化 复用convertview , 历史的view对象 减少子孩子查询的次数 viewholder 异步加载数据(把图片缓存) 条目多时分页加载数据 加载时显示进度条让用户等待...布局的优化 尽量重用一个布局文件,使用include标签,多个相同的布局可以复用 减少一个布局的不必要节点 尽量使用view自身的参数,例如:Button,有一个可以把图绘制在左边的参数:android...代码优化 这部分就是是细微的优化,但是细微多了也就内存节约了 任何一个Java类,包括内部类、匿名类,都要占用大概500字节的内存空间。...如果有一个需要拼接的字符串,那么可以优先考虑使用StringBuffer或者StringBuilder来进行拼接,而不是加号连接符,因为使用加号连接符会创建多余的对象,拼接的字符串越长,加号连接符的性能越低 尽量使用基本数据类来代替封装数据类型...,int比Integer要更加高效,其它数据类型也是一样 使用静态 使用枚举通常会比使用静态常量要消耗两倍以上的内存,在Android开发当中应当尽可能地不使用枚举。

1.4K70

android内存优化

对象的内存在分配之后无法通过程序的执行逻辑释放对该对象的引用,不能被回收该对象所占内存 内存泄漏的危害 1、  引起OutOfMemoryError 2、  内存占用高时JVM虚拟机会频繁触发GC, 影响程序响应速度 3、内存占用大的程序容易被各种清理优化程序中止...,用户也更倾向于卸载这些程序 Android应用的开发语言为Java,每个应用最大可使用的堆内存受到Android系统的限制 Android每一个应用的堆内存大小有限       1、  通常的情况为16M...没有的可以去http://www.eclipse.org/mat/downloads.php安装一下MAT 在Android 的调试环境DDMS下,找到Heap dump ? ?...例如View#setTag(int, Object)的内存泄漏https://code.google.com/p/android/issues/detail?...其他内存泄漏       1、Android DigitalClock引起的内存泄漏http://code.google.com/p/android/issues/detail?

1.3K90

android性能优化

,我这是主要是针对于Android平台来说的。...二是通用的Android性能优化,如同步改异步,各种缓存的使用等 三是应用程序内部的性能优化,如内部逻辑、数据插入及查找、数据结构的安排与组织等 以下部分针对于上述3种类型,分别进行简要说明: 基本优化策略...原文参考:Performance Tips 译文参考:Android应用开发者指南:性能优化(1) 其它参考:Android开发性能优化简介 总体上来说,想要写出高效代码,我们要遵循两条基本的原则: 不作没有必要的工作...性能优化 布局优化 (原文参考:ImprovingLayout Performance) 尽量减少Android程序布局中View的层次,View层次越多,效率就越低 使用复用布局...使用ViewStub懒加载布局 (TODO:Android布局技巧:使用ViewStub提高UI性能) 使用ViewHolder、Thread使ListView滚动更加流畅 其它优化点 合理使用异步操作

73450

Android性能优化

讲到Android开发,就不得不谈一下Android优化,不管是平时开发中我们需要注意的一些Android对Java的一些类的优化,还是实际开发中对性能的优化,其实早在15年的google全球大会上google...就Android的性能优化就给我们做了很好的介绍:点击打开链接。...接下来本文从几个方面入手讲一讲Android优化,主要从以下几点:布局优化,绘制优化,内存优化,响应速度优化,bitmap优化(主要结合listview),线程优化,其他常用性能优化;内存检测工具mat...所以我们在优化的时候就不能: 不能凭感觉,要看数据说话,有足够多的测量 尽量使用低配置设备进行测试 权衡利弊,以保证进度、稳定为主 改善后一定要验证,保证每一次改善都有效,不会导致其它问题 性能优化步骤...在Android中,主线程,也就是UI线程,除了负责处理UI相关的操作外,还可以执行文件读取或者数据库读写操作(从Android 4.0 开始,网络操作禁止在主线程中执行,否则会抛出NetworkOnMainThreadException

1K61

优化android程序

优化java代码 1.尽量使用static和final修饰符 对于一些固定的类和方法尽量使用static修饰符,调用静态方法的效率是最高的,而且可以减少空间占用。...适当的使用final修饰符不仅可以保护重要逻辑或者数据,还可以提高程序的执行效率。...常见的回收方式实在变量或者对象使用完之后,将其手动设为null 4.优化循环语句 首先是要避免重复运算 //错误写法 for(int i = 0; i < vector.size(); i++){...进行逻辑计算时应该尽量使用基本数据类型,不如int 数组 string数组。...,那么我们就不能对这个变量进行任何修改了,这种数组也无法进行增删改查 以及排序等操作 -这种声明的数据在整个进程被销毁之前都会常驻内存,使用不当有可能会引起一些性能问题。

26110

Android优化指南

ListView的优化 复用convertview , 历史的view对象 减少子孩子查询的次数 viewholder 异步加载数据(把图片缓存) 条目多时分页加载数据 加载时显示进度条让用户等待...布局的优化 尽量重用一个布局文件,使用include标签,多个相同的布局可以复用 减少一个布局的不必要节点 尽量使用view自身的参数,例如:Button,有一个可以把图绘制在左边的参数:android...代码优化 这部分就是是细微的优化,但是细微多了也就内存节约了 任何一个Java类,包括内部类、匿名类,都要占用大概500字节的内存空间。...如果有一个需要拼接的字符串,那么可以优先考虑使用StringBuffer或者StringBuilder来进行拼接,而不是加号连接符,因为使用加号连接符会创建多余的对象,拼接的字符串越长,加号连接符的性能越低 尽量使用基本数据类来代替封装数据类型...,int比Integer要更加高效,其它数据类型也是一样 使用静态 使用枚举通常会比使用静态常量要消耗两倍以上的内存,在Android开发当中应当尽可能地不使用枚举。

43820

Android 性能优化

渲染、计算、内存、网络、电量 Render 首先说说渲染方面,在正式开车之前,我们先了解一下其他的知识点,Android系统每隔16ms就重新绘制一次页面,就是说应用要在16ms内完成屏幕刷新,如果16ms...(); i <y; i++){ } 在安卓系统中,谷歌为我们提供了一些平台比较高效的数据结构,android.util包下一共有如下几个类:SparseArray系列(SparseArray...,一些大数据量的计算建议放在子线程执行,最好用线程池来操作,直接使用线程不可控,可使用RxJava 的 IO 线程来处理大计算量,很多框架有做相关的优化,还有一些"计算优化"是属于特定的安卓下的计算优化...关于服务器端的网络优化不做过多解释,关于客户端的连接优化,IP直接链接,这个涉及到Http的原理,我们请求一个接口,实际上请求一台电脑的数据,每一个生产环境的地址都是需要通过NDS服务器来解析的,如果直接访问...分优先级请求网络就是比如一个页面分为头部和尾部,首先展示给用户的是头部区域,那我们就先请求头部数据,等头部数据出来后再请求尾部数据,这属于策略请求优化。关于数据优化就是字面意思,不做解释。

79310
领券