`
nanjingjiangbiao_T
  • 浏览: 2600999 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论
文章列表
当程序的数据有改变的时候就需要更新屏幕,这个时候我们就采用invalidata方法。这个方法简单方便,而当我们调用这个方法的时候我们整个视 图都发生了更新。而我们的数据一般情况下只是在某一个区域内做出改变,这个时候我们再去更新其他没有数据改变的区域就很浪费资源。这个时候我们考虑如何优 化。 解决办法 Android提供系统了两个局部更新数据的方法: invalidate(Rect dirty); invalidate(int left, int top, int right,int bottom); 利用这两个方法我们就可以只对需要更新的区域做出更新,其他不需要数据更新的区域就不 ...
在android中真正展示给用户的是view,而activity则是负载在android中所其的作用主要是处理一些逻辑问题,比如生命周期的管理、建立窗口等。在谈到窗口管理时,有必要先说下ViewManager这个接口,这个接口主要有以下的实现子接口和实现类,分别是:WindowManager和ViewGroup里面还有三个重要的方法: 1)addView(); 2)updateViewLayout(); 3)removeView(); 在WindowManager中,addView方法表示的是将主窗口中的顶级view(也就是DecorView)添加到WindowManager中, ...
我知道android的view布局是树形布局的。子View需要刷新的自身界面的时候,把需求告诉父亲,则父View负责刷新、布局显示子View,从上到下。 public void invalidate() { final ViewParent p = mParent; final AttachInfo ai = mAttachInfo; if (p != null && ai != null) { final Rect r = ai.mTmpInvalRect; // 设置刷新区域为自己的尺寸 ...
1)首先要有良好的编码习惯  一个优秀的开发者应该善于运用常识、完善的算法和标准设计模式。要有资源意识,打开了就要记得关闭,尽量做到晚获取,早释放。这些由来已久的编码准则同样适用Android应用开发,尤其是使用基础设备服务时。   2)让阻塞操作远离主UI线程   通过使用AsyncTask、线程、IntentService和自定义后台服务,保证应用的灵活性。使用加载工具简化游标等长时间加载数据的状态管理。当有其他程序运行时,不能让你的应用滞后或中止。   如果一个操作需要消耗较多时间和资源时,取消该操作,换成异步处理,这样应用就能保持响应,用户可以继续各种操作。该方法适用磁盘读写、访问 ...
执行“su”命令有一个前提,那就是手机被root过或者是手机里面的busybox支持“su”命令,否则会执行失败。 具体实现代码如下: import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import android.util.Log; public ab ...
通过在群里大家的讨论,我总结了两点问题,很多初学者都问过: 1. ngixn事件处理中关于active和ready的问题 2. ngx_connection_t与ngx_http_connection_t结构的区别与联系 这里分开讨论下。 1.ngixn事件处理中关于active和ready的问题 这俩成员何时为0,何时又被置1,把很多人搞迷糊了。其实从nginx的设计上来讲,它想表达的语义很明确: 当一个fd第一次加入到epoll中的时候,active会被置1,意味着这个fd是有效的。直到我们把这个fd从epoll中移除,active才会清零。ready是另 ...
我们现在讨论算是最简单的情景,即服务器还没有文件缓存,第一个需要缓存的请求的处理过程。当然需要关注的情景有很多,一个一个来吧。 在缓存服务器设计与实现(一)中讨论的都是一些准备工作,我们接下来要关注从后端机器取回数据以后进行缓存的情景。首先来探讨一个问题,以nginx为例,它是在取后端数据之前就创建了缓存对象,那么从整个系统的角度来看,创建缓存对象的过程包括在内存中建立相应的控制结构,并且在磁盘上创建实体(文件的形式)。那么我们需要关注的是这两部分都有些什么成分?先看磁盘上的文件,它应该存什么。存储实际文件内容是必然的,这就够了吗? 我们知道作为一个ht ...
三十岁,开始异域漂泊 2012年5月,因为想在职业上做一些新的尝试(其中的一个想法,就是想尝试做贴近用户和产品一些的开发工作,而不只是做平台...),萌生去意。当时公司快上市了(现在已经上市了),上市半年后解禁 手上 ...
(注:本文由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 两周时间没来CSDN更新博客,业余时间主要花在新上市的《仙剑奇侠传五-前传》上了~ 不可否认,仙剑系列作为国产单机游戏的第一品牌,当 ...
这是一篇百度前员工发表的博客,在这篇长文里回忆了他离开百度的原因、他眼中的百度乱象以及对百度文化的反思。全文转载,无删减。 原标题:李彦宏的“罪己诏” 1、离开离开百度已经一年多了。
首先,让我们先看下实现的截图: 当有录音文件存在时,会显示在下面的ListView当中。 下面给出实现的完整代码: 1.主程序代码 package irdc.ex07_11; import java.io.File; import java.io.IOException; import java.util.ArrayList; import android.app.Activity; import android.content.Intent; import android.media.MediaRecorder; import android.net.Uri; import ...
Android Logcat使用起来可以方便的观察调试内容,基本上的使用方法(巧用Logcat调试程序)。本次要说明的是平时的Log.v Log.d Log.i Log.w Log.e的区别是什么? 一、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("",""); 二、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择 三、Log.i的输出为绿色,一般提示性的消息information,它不会输 ...
Google Android平台在设计程序声明周期上比较特殊,可能是考虑到第二次加载时保证速度的原因而没有强制加入内存释放问题,所有的资源回收由Dalvik GC自动完成,所以在设计开发时一定要注意Activity和Service类的生命周期问题,显示在最上层的窗口将有最高的优先级,当Android操作系统内存不够用时自动将会根据历史栈按优先级强制杀掉进程。
首先,让我们来看下本程序的实现截图: 图中的五个ImageButton实现不同的功能: 1.调大音量 2.减小音量 3.调整手机模式为正常 4.调整手机模式为静音 5.调整手机模式为震动 下面给出实现的代码: public class EX07_08 extends Activity { /* 变量宣告 */ private ImageView myImage; private ImageButton downButton; private ImageButton upButton; private ImageButton normalButto ...
在Android手机中判断是否联网可以通过 ConnectivityManager 类的isAvailable()方法判断, 首先获取网络通讯类的实例 ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); , 使用cwjManager.getActiveNetworkInfo().isAvailable(); 来返回是否有效,如果为True则表示当前Android手机已经联网,可能是WiFi或GPRS、HSDPA等等, 具体的可以通 ...
Global site tag (gtag.js) - Google Analytics