- 浏览: 117905 次
- 性别:
最新评论
文章列表
1.客户端的功能逻辑不难,UI界面也不难,但写UI花的时间是写功能逻辑的两倍. 2.写代码前的思考过程非常重要,即使在简单的功能,也需要在本子上把该功能的运行过程写出来. 3.要有自己的知识库,可以是一个工具类,把写过的,看过的好的代码放进去,也可以是一个笔记本软件.因为只有放在知识库里的东西,才是你最重要的财富. 4.如果你想做自由职业者,你需要学英语,因为在国外的盈利比国内多很多.如果你想进大公司,好公司,你需要学英语.你想深入学习android,但中文的android文章太少了,你查查百度,到处都是copy来copy去的hellword,所以,你需要学英语.如果你想出 ...
private static Boolean isExit = false;
private static Boolean hasTask = false;
1.不要创建 Java 对象
在性能敏感的代码里, 尽量避免创建 Java 对象,例如:
[1] 测量 onMeasure()
[2] 布局 onLayout()
[3] 绘图 dispatchDraw(), onDraw()
[4] 事件处理 dispatchTouchEvent(), onTouchEvent()
[5] Adapter getView(), bindView()
2.GC, 垃圾回收
[1] 整个程序暂停
[2] 慢(大约几百个毫秒)
3.强行限制 (适用于调试模式)
int ...
1.越简单越好
如果一个窗口包含很多视图
[1] 启动动时间长
[2] 测量时间长
[3] 布局时间长
[4] 绘制时间长
如果视图树深度太深
[1] StackOverflowException
[2] 用户界面反应速度很慢
2.解决的办法
[1] 使用TextView的复合drawables减少层次
[2] 使用ViewStub延迟展开视图
[3] 使用<merge>合并中间视图
[4] 使用RelativeLayout减少层次
[5] 使用自定 ...
主要说明
当屏幕需要更新时, 调用 invalidate()
[1] 简单方便.
[2] 但会更新整个视图,代价太昂贵了.
最好先找到无效区域,然后调用
invalidate(Rect dirty);
或
invalidate(int left, int top, int right, int
bottom);
应用实例分析 --- 在屏幕上触摸移动小图标
最简单的编码在每次响应移动事件时调用invalidate
更有效的执行方法是只更新需要更新的区域
1.选择恰当的图像尺寸
视图背景图像总会填充整个视图区域
[1] 图像尺寸不合适会导致自动缩放.
[2] 避免实时缩放.
[3] 最好预先缩放到视图大小.
originalImage = Bitmap.createScaledBitmap(
originalImage, // 被缩放图像
view.getWidth(), // 视图宽度
view.getHeight(), // 视图高度
true); // 双线性过滤器
2.窗口背景
[1 ...
如何使用Adapter
Adapter是ListView和数据源之间的中间人,有如下的特点:
[1] 当每条数据进入可见区时,Adapter的getView()会被调用,然后返回代表具体数据的视图
[2] 触摸滚动时,频繁调用
[3] 支持成百上千条数据
...
提供了三种动画效果:逐帧动画(frame-by-frame animation),这种动画和GIF一样,一帧一帧的显示来组成动画效果;布局动画(layout animation),这种动画用来设置layout内的所有UI控件;控件动画(view animation),这种是应用到具体某个view上的动画。
在这三种动画实现中逐帧动画是最简单的,而控件动画是有点复杂的,要涉及到线性代数中的矩阵运算,下面就由易到难逐个介绍,先来看看逐帧动画如何实现。
逐帧动画
逐帧动画是通过OPhone中的android.graphics.drawable.AnimationDrawable类 ...
初始化Animation,从类的名字可以看出是一个变换View的位置的动画,参数起点横坐标,终点横坐标,起点纵坐标,终点纵坐标。
Animation a = new TranslateAnimation(0.0f,
targetParent.getWidth() - target.getWidth() - targetParent.getPaddingLeft() -
targetParent.getPaddingRight(), 0.0f, 0.0f);
下面是动画的参数设置,我加上了注释
a.setDur ...
HR是专门负责谈薪资的, 当我们跟HR讨价还价的时候, HR会介绍公司有的福利,而回避公司没有的福利。 作为程序员,我们一定要对跟我们利益息息相关的各种福利细节了如指掌, 各项福利都要跟HR询问清楚,才能比较公司之间的总体福利。 同时还需要掌握些技巧,别让我们的利益会受到损害。
眼下正是年后跳槽的黄金时期,园里的大牛小牛拿了去年的年终奖后,有些肯定想给自己加点工资。园里的大牛小牛都是我们中国软件业的精英,跳槽的时候 肯定手里握着好几个Offer, 不知道选择哪家。先不管工作的内容和前途,就工作本身的待遇,我们还是可以比较的。 HR是专门负责谈薪资的, 当我们跟HR讨价还价的时候, HR会 ...
因为我们的应用程序能够使用的内存有限,所以在编写代码的时候需要特别注意内存
使用问题。如下是一些常见的内存使用不当的情况。
⑴查询数据库没有关闭游标
描述:
程序中经常会进行查询数据库的 ...
在编写Android程序的时候,我们总是难免会碰到OOM(OUT OF MEMORY)的错误,那
么这个错误究竟是怎么来的呢,可以先看一下这篇文章 ANDROID BITMAP 内存限制
OOM,OUT OF MEMORY。
这里,我使用 Gallery 来举例,在模拟器中,不会出现 OOM 错误,但是,一旦把程序运
行到真机里,图片文件一多,必然会出现OOM,我们通过做一些额外的处理来避免。
1.创建一个图片缓存对象HashMap dataCache,integer对应Adapter中的位置position,我
们只用缓存处在显示中的图片,对于之外的位置,如果 ...
基于Android开发应用时,可能会挺时常出现Out Of Memory 异常. 在Android中,一个Process 只能使用16M内存,要是超过了这个限定就会跳出这个异常。这样就要求我们要时刻想着开释资源。Java的回收工作是交给GC的,如何让GC能实时的回收已经不是用的对象,这个里面有许多技巧,各人可以google一下。 因为总内存的施用超过16M而引起OOM的情况,非常简单,我就不继续展开说。值当注意的是Bitmap在不用时,肯定是要recycle,不然OOM是非常容易出现的。 本文想跟各人一起讨论的是另外一种情况:明明还有许多内存,但是发生OOM了。 这类情况时常出现在 ...
在开发中我们经常需要把我们的应用设置为全屏,这里我所知道的有俩中方法,一中是在代码中设置,另一种方法是在配置文件里改!
一、在代码中设置:
package com.android.tutor;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
public class OpenGl_Lesson1 extends Activity {
public void onC ...
大家好,我们这一节讲的是Android Preferences 的学习,Preferences 在Android当中被用来记录应用,以及用户喜好等等,它可以用来保存
简单的数据类型,如Int,Double,Boolean等。Preferences中保存的数据可以理解为Map型。我们通过PreferenceManager 以及getDefaultSharedPreferences(Context) 来获取它,比如当我们想获得整数我们可以用 getInt(String key, int defVal) .获取里面的某个键值,当我们想修改时候我们用putInt(String key, int ...