随笔分类 -  Android

摘要:如何进行Android单元测试Menifest.xml中加入:<application>中加入:<uses-library android:name="android.test.runner" /><application>外面加入:<uses-permission android:name="android.permission.RUN_INSTRUMENTATION" /><instrumentation android:name="android.test.Instrumentatio 阅读全文
posted @ 2011-06-16 20:36 S.Kei.Cheung 阅读(423) 评论(0) 推荐(2)
摘要:关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式:1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画;2. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画。动画类型下面先来看看Android提供的动画类型。Android的animation由四种类型组成在XML文件中:alpha 渐变透明度动画效果scale 渐变尺寸伸缩动画效果translate 画面转换位置移动动画效果rotate 画面转移旋转动画效果在Java 源码中定义了相应 阅读全文
posted @ 2011-06-16 20:23 S.Kei.Cheung 阅读(370) 评论(0) 推荐(0)
摘要:今天突然发现ANDROID模拟器启动失败,log显示如下错误信息:ERROR: the user data image is used by another emulator. aborting问题原因:avd的加锁机制使然。 .lock是加锁,如果程序崩溃等原因导致无法清除这些以.lock结尾的文件夹,就会出现这个问题,也就是这个avd的锁没有被释放,导致avd manager以为这个avd正在使用当中。解决办法:删除C:\Documents and Settings\@USER@\.android\avd.找到该目录下与模拟器对应的avd,然后删除其中的.lock文件即可。 阅读全文
posted @ 2011-06-08 14:51 S.Kei.Cheung 阅读(411) 评论(1) 推荐(0)
摘要:问题概述:在导入一个app后提示如下错误:“Error generating final archive: Debug Certificate expired on 10/09/18 16:30”原因分析:android要求所有的程序必须有签名,否则就不会安装该程序。在我们开发过程中,adt使用debug keystore,在 preference->android->buid中设置。debug的keystore默认有效期为一年,如果你是从一年前开始完android程序,那么在一年后导入这个app的时候很可能出现debug keystore过期,导致你无法生成 apk文件。此时你只 阅读全文
posted @ 2011-06-08 12:45 S.Kei.Cheung 阅读(269) 评论(1) 推荐(0)
摘要:1frameworks/base/telephony/java/android/telephony/cdma为使用CDMA具体的电话功能提供的API。1.1)CdmaCellLocation是CellLocation的直接派生类,表示了一个CDMA手机通话的位置。CDMA(Code Division Multiple Access)又称码分多址,是在无线通讯上使用的技术,CDMA 允许所有的使用者同时使用全部频带(1.2288Mhz),并且把其他使用者发出的讯号视为杂讯,完全不必考虑到讯号碰撞 (collision) 的问题。 CDMA的优点包括: CDMA中所提供的语音编码技术,其通话品质比 阅读全文
posted @ 2011-05-22 14:25 S.Kei.Cheung 阅读(2088) 评论(0) 推荐(0)
摘要:转自http://blog.csdn.net/zhangchiytu/archive/2011/04/08/6310488.aspx谢谢他的共享让我很方便的学会了编译源码过程说明:这篇文章是介绍如何开发Android源码,包括各平台的源码而非仅仅Google释放的源码,我采用的是MSM7267. 前提不需要SDK,不需要ADT,通过整个工程的编译都可以生成。为了在Eclipse中调试源码如Phone、MMS、Contact…… 由于以前都没接触过Java、Eclipse、ADT... 这些,在网上看了N多的文章,就这篇详细,所以贴出来共享,同时 加入了、 自己在配置中 的TroubShoot. 阅读全文
posted @ 2011-05-13 17:02 S.Kei.Cheung 阅读(2286) 评论(0) 推荐(0)
摘要:这几天搞了搞AIDL,终于弄明白了在AIDL中让Service调用Activity的方法代码:首先建立一个ICallback.aidl文件,作为Activity中的回调方法1 package com.zhang.test.service;2 3 interface ICallback {4 void showResult(int result);5 }然后再建立一个IService.aidl用来在Activity中接收Service回调,以及在Service中onBind时返回的Binder注意:aidl中import不能写com.xxx.*,要写全类的路径1 package com.zhan 阅读全文
posted @ 2011-05-13 16:46 S.Kei.Cheung 阅读(2857) 评论(1) 推荐(0)
摘要:本文参考了官方Dev Guide文档,简单介绍Android下的affinities和任务(task)。Activity和Tasktask就好像是能包含很多activity的栈。 默认情况下,一个activity启动另外一个activity时,两个activity是放在同一个task栈中的,第二个activity压入第一个 activity所在的task栈。当用户按下返回键时,第二个activity从栈中弹出,第一个activity又在当前屏幕显示。这样,从用户角度 来看,这两个activity就好像是属于同一个应用程序的,即使第二个activity是属于另外一个应用程序的。当然,这是指默认情 阅读全文
posted @ 2011-04-26 20:44 S.Kei.Cheung 阅读(412) 评论(0) 推荐(0)
摘要:我们讲到如何通过扩展ArrayAdapter来将其里面所装的对象展现在自定义的View里,其中有涉及到展现ListView的效率问题。这边我们在分析下到底ListView是如何创建整个UI,而我们要如何才能写出运行效率高的代码,也顺便了解下如何使用android内置的支持更方便的编写一个ListView。假设我们要显示一个有1000行数据的ListView,这样的数据量在手机中应该算很庞大了,那ListView会如何处理呢,以让系统运行时占用的空间时间最优化呢?其实在ListView中有使用懒加载机制以提高显示的效率。在很多系统架构中我们都可以看到懒加载机制,如hibernate的懒加载机制, 阅读全文
posted @ 2011-04-26 20:23 S.Kei.Cheung 阅读(1008) 评论(0) 推荐(0)
摘要:Android中JNI编程的那些事儿首先说明,Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++——即通过JNI的方式来使用本地(Native)代码。因此JNI对Android底层开发人员非常重要。如何将.so文件打包到.APK让我们先从最简单的情况开始,假如已有一个JNI实现——libxxx.so文件,那么如何在APK中使用它呢?在我最初写类似程序的时候,我会将libxxx.so文件push到/system/lib/目录下,然后在Java代码中执行System.loadLibrary(xxx),这是个可行的做法,但需要取得/sy 阅读全文
posted @ 2011-04-12 04:51 S.Kei.Cheung 阅读(8240) 评论(0) 推荐(1)
摘要:在Android开发中,涉及到JNI时,有时会报告非常底层栈信息,在栈信息中 仅仅给出了.so文件出错位置的地址,根本看不成问题所在,但是如果使用arm-eabi-addr2line 命令,就可以把地址信息转换成方法名称:arm-eabi-addr2line 命令 在%ANDROID_SOURCE%\prebuilt\linux-x86\toolchain\arm-eabi-4.4.0\bin;例如有如下的栈信息:02-21 13:34:39.621 I/DEBUG ( 79): pid: 394, tid: 560 >>> android.process.media < 阅读全文
posted @ 2011-04-12 04:46 S.Kei.Cheung 阅读(812) 评论(0) 推荐(0)
摘要:释放资源 即AudioRecord.release()方法,前两天自己随手想到的一个函数,写入还真有,而且正是想要的方法--释放当前占用的资源,但是在使用中可能遇到各种各样的问题,不适用它问题就更严重了。目前很多网上关于AudioRecord的讲解都没有考虑release这个方法,或者google code上面一些方法不需要release资源。但是在用的时候,尤其来电时释放mic资源是一种必须的需求,所以还是要用到release方法释放mic资源。个人感觉各式各样的网络流行版本中,http://blog.csdn.net/zhjp4295216/archive/2010/11/09 /5996 阅读全文
posted @ 2011-04-12 04:40 S.Kei.Cheung 阅读(707) 评论(0) 推荐(0)
摘要:1.手机信息查看助手可行性分析 开始进入编写程序前,需要对需求的功能做一些可行性分析,以做到有的放矢,如果有些无法实现的功能,可以尽快调整。 这里分析一下项目需要的功能,主要是信息查看和信息收集,如版本信息、硬件信息等,这些都可以通过读取系统文件或者运行系统命令获取,而像获取安装的软件信息和运行时信息则需要通过API提供的接口获取。实现API接口不是什么问题,主要把精力集中在如何实现运行系统命令,获取其返回的结果功能实现上。具体实现代码如下所示: 1 public class CMDExecute { 2 3 public synchronized String run(String [] c 阅读全文
posted @ 2011-04-08 18:40 S.Kei.Cheung 阅读(737) 评论(0) 推荐(0)
摘要:首先,我们需要一个keystore,当然已经有了的话就不用这一步了:cmd下:进入到jdk的bin目录,这样的话,android.keystore文件就会生成在这个目录下,签名的时候我们需要这个文件C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore输入keystore密码:再次输入新密码:您的名字与姓氏是什么? [Unknown]: qiaoling您的组织单位名称是什么? [ 阅读全文
posted @ 2011-04-03 13:29 S.Kei.Cheung 阅读(510) 评论(0) 推荐(0)
摘要:1. 该格式图片的特点2. 制作方式一 .9.png 格式的文件的特点 与传统的png 格式图片相比, 9.png 格式图片在图片四周有一圈一个像素点组成的边沿,该边沿用于对图片的可扩展区和内容显示区进行定义。这种格式的图片在android 环境下具有自适应调节大小的能力。(1)允许开发人员定义可扩展区域,当需要延伸图片以填充比图片本身更大区域时,可扩展区的内容被延展。(2)允许开发人员定义内容显示区,用于显示文字或其他内容 如下图所示: 左侧和上方的黑线交叉的部分即可扩展区域 右侧和下方的黑线交叉的部分即内容显示区二、 .9.png 图片的制作 android sdk 的 tools 文件夹 阅读全文
posted @ 2011-03-30 22:59 S.Kei.Cheung 阅读(408) 评论(0) 推荐(0)
摘要:Android工程的的主配置文件androidmanifest.xml的一些高级属性大多数开发者可能不了解,下面我们一起来看一看。支持的屏幕大小设置,我们可以显示的指定允许运行在:<supports-screens android:largeScreens="true" //WVGAandroid:normalScreens="true" //HVGA android:smallScreens="true" //QVGA android:resizable="true" android:anyDensity= 阅读全文
posted @ 2011-03-29 15:26 S.Kei.Cheung 阅读(608) 评论(0) 推荐(1)
摘要:在我之前的安全与权限系列文章中对此已经有所描述,但是具体到标签的使用没有一个系统的比较。于是乎偶就想写篇文章总结下。本文只是浅析在Manifest文件中各个标签的用法,算是抛砖引玉。(终于拽了个成语,虽然到目前为止,偶连块砖头都没有收到过,但是本着予人玫瑰,手有余香的助人为乐精神,偶还是撰写了这篇文章。好,打住,开始正文。)在Android的manifest文件中有四个标签与permission有关,它们分别是<permission><permission-group> <permission-tree> 和 <uses-permission>。 阅读全文
posted @ 2011-03-29 14:51 S.Kei.Cheung 阅读(746) 评论(0) 推荐(0)
摘要:1.概要本文主要介绍在Android平台上开发网络应用的一些常用接口。2. Android平台上可以使用的几种网络接口Android平台的网络应用绝大部分都是基于Java的编程接口的,也就是说我们开发类似的运用的时候可以有多种选择,比J2me确实好多了。2.1.标准Java接口java.net.*下面提供了访问HTTP服务的基本功能。使用这部分接口的基本操作主要包括:创建URL以及URLConnection / HttpURLConnection对象设置连接参数连接到服务器向服务器写数据从服务器读取数据 1 import java.io.InputStream; 2 3 import java 阅读全文
posted @ 2011-03-26 10:21 S.Kei.Cheung 阅读(1084) 评论(0) 推荐(1)
摘要:Android的Window类(一)Android的GUI层并不复杂。它的复杂度类似于WGUI这类基于布局和对话框的GUI,与MFC、QT等大型框架没有可比性,甚至飞漫魏永明的MiniGUI都比它复杂许多。您也许会问,这样简单的GUI如何实现浏览器呢?原因很简单,浏览器有自己一套GUI。Android浏览器(WebKit)的GUI和Android的GUI实用同一套GDI——Skia,但GUI层是完全不同的设计,分别自成体系。 Windown类,位于代码树frameworks\base\core\java\android\view\Windowjava.java文件。连同注释,这个文件总共一千多 阅读全文
posted @ 2011-03-25 10:02 S.Kei.Cheung 阅读(813) 评论(0) 推荐(0)
摘要:1.Android中通过SQLite数据库引擎来实现结构化数据存储。SQLite是一个嵌入式数据库引擎,针对内存等资源有限的设备,提供的是一种高效的数据库引擎。2.Android提供了创建和使用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法,另外还有一个SQLiteOpenHelper工具类提供更简洁的功能。3. SQLiteOpenHelper是SQliteDatabase的一个帮助类,用来管理数据库的创建和版本更新。一般用法是定义一个类继承之,并实现两个抽象方法onCreate(SQLiteDatabase db)和onUpgrade 阅读全文
posted @ 2011-03-23 21:46 S.Kei.Cheung 阅读(616) 评论(0) 推荐(0)