2013年3月26日

知识点集锦

摘要: 1.TextUtils.isEmptyReturns true if the string is null or 0-length.2.FileUtils.deleteDir(file)Deletes all files and subdirectories under "dir".3.HashMap不支持线程的同步Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。 HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程 阅读全文

posted @ 2013-03-26 17:56 _star 阅读(249) 评论(0) 推荐(0)

2013年3月21日

so 加载失败

摘要: 问题出现过程当我通过添加了工程另外的工程库的时候,发现我之前工程里通过jni编译的。so库不能用了。后来经过高人指点说需要在lib里面添加armeabi-v7a.然后把armeabi里面的so文件复制过来。程序就能正常加载了。但是不知道是为什么 网络上的资料大致如下 求高人解释 在我们android APK的根目录有一个 libs文件夹,此文件夹下包含了armeabi 和armeabi-v7a两个文件夹,我们的c代码编译成的本地库(各种.so)就会放在这两个文件夹其中的一个。那armeabi-v7a 与 armeabi有什么区别,都是什么意思呢? armeabi和armeabi-v7a是表示. 阅读全文

posted @ 2013-03-21 16:48 _star 阅读(589) 评论(0) 推荐(0)

java.lang.IllegalArgumentException: pointerIndex out of range

摘要: 在做多点触控放大缩小,操作自己所绘制的图形时发生这个异常,如果是操作图片的放大缩小多点触控不会出现这个错误这个bug是Android系统原因 所以第一种方式是:修改frameworks\base\core\jni\android_view_MotionEvent.cpp的android_view_MotionEvent_nativeGetAxisValue方法注释掉(!validatePointerIndex(env,pointerIndex,pointerCount)){return0;}改完后需重新编译整个系统,然后替换lib库,重新编译整个系统一般需要半个多小时,这个方法就比较麻烦了2。 阅读全文

posted @ 2013-03-21 16:41 _star 阅读(777) 评论(0) 推荐(0)

2013年3月14日

Android 平台上长连接的实现

摘要: Android 平台上长连接的实现为了不让 NAT 表失效,我们需要定时的发心跳,以刷新 NAT 表项,避免被淘汰。Android 上定时运行任务常用的方法有2种,一种方法用 Timer,另一种是AlarmManager。TimerAndroid 的 Timer 类可以用来计划需要循环执行的任务,Timer 的问题是它需要用 WakeLock 让 CPU 保持唤醒状态,这样会大量消耗手机电量,大大减短手机待机时间。这种方式不能满足我们的需求。AlarmManagerAlarmManager 是 Android 系统封装的用于管理 RTC 的模块,RTC (Real Time Clock) 是一 阅读全文

posted @ 2013-03-14 16:07 _star 阅读(203) 评论(0) 推荐(0)

Android视频渲染: YUV转RGB

摘要: Android SDK为Camera预览提供了一个Demo,这个Demo的大致流程是初始化一个Camera和一个SurfaceView,SurfaceView被 创建之后可以获取到一个SurfaceHolder的实例,将这个SurfaceHolder传递给Camera,这样Camera就会自动的将捕获到的 视频数据渲染到SurfaceView上面,这也就是Camera预览的效果。当然更多的时候我们需要获取到Camera的实时视频数据来自己进行预处理 并渲染,Camera也提供了这个接口,用法如下:1mCamera.setPreviewCallback(newPreviewCallback(){ 阅读全文

posted @ 2013-03-14 15:14 _star 阅读(2131) 评论(0) 推荐(0)

2013年3月13日

点击两次退出程序

摘要: boolean isExit=false; Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); isExit=false; } }; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == KeyEvent.KEYCODE_BACK... 阅读全文

posted @ 2013-03-13 14:43 _star 阅读(250) 评论(0) 推荐(0)

Handler

摘要: android 只有主线程可以更新UI。service与activity同属一个线程。他们都在主线程工作。耗时的操作必须放在线程运行。但是service跟activity可以同时申请handler来处理消息。1.service activity全在主线程实例化handlerhandler=new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); if(msg.what==0)... 阅读全文

posted @ 2013-03-13 14:14 _star 阅读(182) 评论(0) 推荐(0)

android 全局变量

摘要: //类public class Declare extends Application { private String strAccounts = ""; // 操作帐号 public void setAccounts(String accountsNO) { this.strAccounts = accountsNO; } public String getAccounts() { return this.strAccounts; } // 操作密码 public void setAccountsPassW... 阅读全文

posted @ 2013-03-13 11:00 _star 阅读(176) 评论(0) 推荐(0)

2013年3月7日

AIDL parcelable service Ibinder

摘要: AIDL的作用 由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象。在Android平台,一个进程通常不能访问另一个进程的内存空间,所以要想对话,需要将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界。 通过代码来实现这个数据传输过程是冗长乏味的,Android提供了AIDL工具来处理这项工作。 AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communicatio.. 阅读全文

posted @ 2013-03-07 16:14 _star 阅读(270) 评论(0) 推荐(0)

2013年3月5日

SDCARD db

摘要: package com.thunder.sd;import java.io.File;import java.io.IOException;import android.R.bool;import android.app.Activity;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLi 阅读全文

posted @ 2013-03-05 11:02 _star 阅读(207) 评论(0) 推荐(0)

导航