1.明天删除orthodotics_design_animation_content_gif.gif文件。(已完成)

2. 如何检测内存泄露?

A: 可以通过一些性能监测分析工具,如 JProfiler、Optimizeit Profiler,MAT工具。

MAT工具参考http://blog.csdn.net/fenglibing/article/details/6298326

Q: 如何避免内存泄露、溢出?
A: 1) 尽早释放无用对象的引用。

好的办法是使用临时变量的时候,让引用变量在退出活动域后自动设置为null,暗示垃圾收集器来收集该对象,防止发生内存泄露。

2) 程序进行字符串处理时,尽量避免使用String,而应使用StringBuffer。

因为每一个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.

2016年3月11日Android实习日记的更多相关文章

  1. 2016年3月15日Android实习日记

    1.解决了ScrollView滑动冲突问题. 2.设置好了“查看详解”与“题目编号”的部分. 3.完成了app启动图片的设置,并在启动的过程中开辟新的线程连接服务器并开启监听数据. 别忘了注册启动Ac ...

  2. 2016年3月11日Android学习日记

    1.调试技巧:当一次调试过后,可以在App重新返回当前的状态,然后再调试,而不用再点击Android studio的Debug按钮. 参考:http://www.2cto.com/kf/201506/ ...

  3. 2016年3月10日Android实习日记

    待解决问题: *1:内部ScrollView与外部手势事件滑动冲突问题. *2:Linearlayout+View+LinearLayout横向排列,这其中两个LinearLayout内部各有3个竖向 ...

  4. 2016年3月9日Android实习日记

    1. 解决 org.eclipse.swt.SWTException: Graphic is disposed 问题. 参考:http://www.xuebuyuan.com/1896964.html ...

  5. 2016年3月8日Android实习日记

    1.出现fragment后台栈的bug. bug描述:当点击加入后台栈的操作按钮改变指定控件的内容之后,称为A操作:接下来又点击其它没有操作后台栈的按钮来修改原来指定的控件内容,称为B操作.然后点击b ...

  6. 2016年3月3日android实习笔记

    1: android自定义控件时,通常需要重写父类构造函数.这三个够找函数具体啥时调用? public View (Context context) 是在java代码创建视图的时候被调用,如果是从xm ...

  7. 2016年3月1日Android实习笔记

    1:经查资料,Android中gif动画加载共有两种 1)利用WebView,WebView 主要调用三个方法:LoadUrl.LoadData.LoadDataWithBaseURL 2)主要用的是 ...

  8. 2016年3月4日Android实习笔记

    1.让水平LinearLayout中的两个子元素分别居左和居右 在LinearLayout中有两个子元素,LinearLayout的orientation是horizontal.需要让第一个元素居左, ...

  9. Yoshua Bengio 2016年5月11日在Twitter Boston的演讲PPT

    Yoshua Bengio最新演讲:Attention 让深度学习取得巨大成功(46ppt) Yoshua Bengio,电脑科学家,毕业于麦吉尔大学,在MIT和AT&T贝尔实验室做过博士后研 ...

随机推荐

  1. CROSSUI桌面工具 分布加载模块(Distributed UI Module) 与 主模块Module 之间数据传输!

    CROSSUI 基于 NW,如何在模Module 之间(主index.js and module1.js)传输数据?  http://www.crossui.com/Forum/post577.htm ...

  2. centos7使用haproxy1.7.5实现反向代理负载均衡实战

    使用haproxy实现反向代理负载均衡实战环境准备:两台虚拟机 # yum install -y gcc glibc gcc-c++ make screen tree lrzsz node1源码编译安 ...

  3. PYTHON-字符编码&文件处理-练习

    # 把多个账号密码写入文件中# 编写登录功能,登录失败三次 程序退出. # 登录账号密码定义,用列表分割,for循环取值=====判断对错=====循环条件3次退出# with open(r'db.t ...

  4. 怎样使用github

    https://www.zhihu.com/question/20070065 https://www.shiyanlou.com/courses/868/labs/3163/document 初次尝 ...

  5. hdu1024线性dp

    /* dp[i][j]表示取第i个数时分成了j块 要么是将第i个数加入j块中的最后一块,要么是自成一块,加上前面j-1块的和 状态转移方程: dp[i][j]=max(dp[i-1][j]+a[i], ...

  6. tyvj1051 选课

    /* 分组背包+树形dp:以树的深度作为阶段,以节点编号作为一维状态, 思路:首先dp[u][t]表示选择以第u门课为根,选了t门课的最大值, 状态转移方程dp[u][t]=max(所有儿子中凑出t- ...

  7. 步步为营-68-asp.net简单练习(get set)

    1 加法计算器 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...

  8. Python中List的append引用赋值问题处理

    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deep ...

  9. Mq的介绍

    1.使用场景 异步处理 日志收集 流量削峰 应用解耦 2.通信协议 高级消息队列协议(AMQP). 参考文档:http://www.huangxiaobai.com/archives/1267

  10. 000 Python的运行

    1.在命令行中运行 2.使用shell(IDLE) 3.新建.py脚本 只要是编辑器都可以 4.然后脚本在IDLE中运行 首先,需要先打开IDLE,然后使用File下面的open打开所需要的py文件, ...