1.明天删除orthodotics_design_animation_content_gif.gif文件。(已完成)html
2. 如何检测内存泄露? java
A: 能够经过一些性能监测分析工具,如 JProfiler、Optimizeit Profiler,MAT工具。android
MAT工具参考http://blog.csdn.net/fenglibing/article/details/6298326数组
Q: 如何避免内存泄露、溢出?
A: 1) 尽早释放无用对象的引用。安全
好的办法是使用临时变量的时候,让引用变量在退出活动域后自动设置为null,暗示垃圾收集器来收集该对象,防止发生内存泄露。网络
2) 程序进行字符串处理时,尽可能避免使用String,而应使用StringBuffer。jsp
由于每个String对象都会独立占用内存一块区域,如: 工具
Java代码性能
String str = "aaa";
String str2 = "bbb";
String str3 = str str2;
// 假如执行这次以后str , str2再不被调用,那么它们就会在内存中等待GC回收;
// 假如程序中存在过多的相似状况就会出现内存错误;
String str = "aaa";String str2 = "bbb"; String str3 = str str2; // 假如执行这次以后str , str2再不被调用,那么它们就会在内存中等待GC回收; // 假如程序中存在过多的相似状况就会出现内存错误;大数据
3) 尽可能少用静态变量。
由于静态变量是全局的,GC不会回收。
4) 避免集中建立对象尤为是大对象,若是能够的话尽可能使用流操做。
JVM会忽然须要大量内存,这时会触发GC优化系统内存环境;
JVM会忽然须要大量内存,这时会触发GC优化系统内存环境; 一个案例以下:
Java代码:
// 使用jspsmartUpload做文件上传,运行过程当中常常出现java.outofMemoryError的错误,
// 检查以后发现问题:组件里的代码
m_totalBytes = m_request.getContentLength();
m_binArray = new byte[m_totalBytes];
// totalBytes这个变量获得的数极大,致使该数组分配了不少内存空间,并且该数组不能及时释放。
// 解决办法只能换一种更合适的办法,至少是不会引起outofMemoryError的方式解决。
// 参考:http://bbs.xml.org.cn/blog/more.asp?name=hongrui&id=3747
// 使用jspsmartUpload做文件上传,运行过程当中常常出现java.outofMemoryError的错误, // 检查以后发现问题:组件里的代码 m_totalBytes = m_request.getContentLength(); m_binArray = newbyte[m_totalBytes]; // totalBytes这个变量获得的数极大,致使该数组分配了不少内存空间,并且该数组不能及时释放。 // 解决办法只能换一种更合适的办法,至少是不会引起outofMemoryError的方式解决。 // 参考:http://bbs.xml.org.cn/blog/more.asp?name=hongrui&id=3747
5) 尽可能运用对象池技术以提升系统性能。
生命周期长的对象拥有生命周期短的对象时容易引起内存泄漏,例如大集合对象拥有大数据量的业务对象的时候,能够考虑分块进行处理,而后解决一块释放一块的策略。
6) 不要在常常调用的方法中建立对象,尤为是忌讳在循环中建立对象。
能够适当的使用hashtable,vector 建立一组对象容器,而后从容器中去取那些对象,而不用每次new以后又丢弃。
7) 优化配置。
参考:http://blog.csdn.net/wisgood/article/details/16818243
另外参考:http://blog.csdn.net/seelye/article/details/8269705
3.android Handler应设为static,android开发中,使用Lint检测时会提示这么一句话 : This Handler class should be static or leaks might occur。参考:http://blog.csdn.net/jdsjlzx/article/details/8463428
4. linearlayout中如何让某个控件,位于整个屏幕正中央。参考:http://www.eoeandroid.com/thread-321860-1-1.html?_dsign=4c07eb92
个人程序代码:
<!-- 网络链接提示信息 --> <LinearLayout android:id="@+id/before_connect_server" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_marginBottom="50dp" android:gravity="center"> <ProgressBar style="@android:style/Widget.ProgressBar.Large" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="正在加载试题,请稍后..." android:textSize="17sp" android:gravity="center" android:layout_marginTop="20dp" android:textColor="#666666"/> </LinearLayout>
5.
//加载好试题以前,先隐藏内容界面
mSv.setVisibility(View.GONE);而不是
mSv.setVisibility(View.INVISIBLE);
6.
线程中加入showToast("未链接网络", 200);出错,直接跳出。
//mServerConnectStateHandler.sendEmptyMessage(MsgWhat.CONNECT_SERVER_FAIL);
//Toast.makeText(getApplicationContext(), "链接失败", 200).show();
缘由:线程中不能更新UI相关元素,应使用handler。
anroid 线程不安全 须要用handler 否则你run里面的貌似不能执行。
7.