Android 基础开发
durex0402
这个作者很懒,什么都没留下…
展开
-
【转】Android 的AudioTrack.write 暗藏机关
在Android的模拟器上测验1.5与1.6系统,发现用write输出波形数据,数据帧的个数必须是偶数。如果是奇数,线程就stuck在write里面,不返回了。这里所谓数据帧的个数是这样:波形数据的字节数 / 基本单元的字节数基本单元的字节数由初始化时候的AudioFormat来决定。ENCODING_PCM_16BIT 是2字节ENCODING_PCM_6BIT 是1字节...原创 2010-07-15 13:27:36 · 230 阅读 · 0 评论 -
【转】Android Drawable叠加处理方法
大家可能知道Bitmap的叠加处理在Android平台中可以通过Canvas一层一层的画就行了,而Drawable中如何处理呢? 除了使用BitmapDrawable的getBitmap方法将Drawable转换为Bitmap外,今天Android123给大家说下好用简单的LayerDrawable类,LayerDrawable顾名思义就是层图形对象。下面直接用一个简单的代码表示: Bitma...原创 2010-09-17 14:50:27 · 872 阅读 · 0 评论 -
优化Dalvik虚拟机的堆内存分配
对于Android平台来说,其托管层使用的Dalvik Java VM从目前的表现来看还有很多地方可以优化处理,比如我们在开发一些大型游戏或耗资源的应用中可能考虑手动干涉GC处理,使用dalvik.system.VMRuntime类提供的setTargetHeapUtilization方法可以增强程序堆内存的处理效率。当然具体原理我们可以参考开源工程,这里我们仅说下使用方法: privat...原创 2010-06-30 10:07:00 · 133 阅读 · 0 评论 -
Android堆内存也可自己定义大小
对于一些大型Android项目或游戏来说在算法处理上没有问题外,影响性能瓶颈的主要是Android自己内存管理机制问题,目前手机厂商对RAM都比较吝啬,对于软件的流畅性来说RAM对性能的影响十分敏感,除了上次提到的 优化Dalvik虚拟机的堆内存分配 外,我们还可以强制定义自己软件的对内存大小,我们使用Dalvik提供的dalvik.system.VMRuntime类来设置最小堆内存为例: ...原创 2010-06-30 10:10:14 · 208 阅读 · 0 评论 -
Android程序内存管理必读
很多开发者都是从J2ME或J2EE上过来的,对于内存的使用和理解并不是很到位,Android开发网本次给大家一些架构上的指导,防止出现豆腐渣工程的出现。Android作为以Java语言为主的智能平台对于我们开发一些高性能和质量的软件来说了解Android程序内存管理机制是必须的。 Android的Dalvik VM在基础方面和Sun JVM没有什么大的区别仅仅是字节码的优化,我们要知道...原创 2010-06-30 10:14:38 · 86 阅读 · 0 评论 -
Android按键事件映射表和转义符对照
很多开发者表示不知道如何在Android的layout布局文件中输入类似&这样的符号,下面Android123整理了下一些案件事件映射和转义符对照表,比如说 & 在layout.xml中应该\uff06同时,从下表可以看到&和7在键盘上是同一个位置。 KeyEvent.KEYCODE_UNKNOWN, KeyEvent.KE...原创 2010-06-30 10:19:00 · 455 阅读 · 0 评论 -
如何通过代码重启Android设备
很多开发者想如何重启Android设备通过编写代码的方式,大多数的设备都没有Root权限,想让设备重启比较简单的方法就想办法制造一些系统级的错误,强迫Android系统自动重启,类似Windows上Ring0级应用崩溃出现蓝屏,如果没有Root呢对于Android来说产生一个android.os.DeadObjectException的异常是一个不错的方法。...原创 2011-05-30 10:26:09 · 643 阅读 · 0 评论 -
多国语言字符串移植
比如说 String strSite="android123.com"; // $NON-NLS-1$ 这句,其实这和国家化i18n规范有关,从字符串NON-NLS我们可以翻译为 None Native Language 就是不能被本地化,出现这样的注释均为字符串,由于字符串的内容比如 android123.com ,是一个常量,我们不能翻译为Android开发网,主要是解决...原创 2011-05-30 10:29:40 · 177 阅读 · 0 评论 -
Android Canvas绘图抗锯齿解决方法
对于Android来说Canvas一般大量用于自定义View和游戏开发中,对于图形的基础绘制类,提供的drawText、drawBitmap以及drawCircle都需要抗锯齿处理才能让人满意,下面Android123将他们分为两大种情况。 一、包含Paint参数情况时,对于drawText、drawBitmap这样的方法,一般最后一个参数为Paint对象,Paint对象一般用于设置笔...原创 2011-05-30 10:37:28 · 1838 阅读 · 0 评论 -
【转】Android 实现真机远程调试并适应7寸屏大小
<uses-sdk android:targetSdkVersion="4"/> 加入上面代码运行效果如下: 经测试,发现版本号必须为4以上,才可支持适应全屏化,也就是说即便你写一个100也可以支持。 Tip:使用真机调试和使用模拟器调试操作是相同的。 ...原创 2010-09-17 14:43:03 · 137 阅读 · 0 评论 -
Android 什么是ContentValues类
什么是ContentValues类?ContentValues类和Hashtable比较类似,它也是负责存储一些名值对,但是它存储的名值对当中的名是一个String类型,而值都是基本类型。插入记录在这里我们将要插入的值都放到一个ContentValues的实例当中,然后执行插入操作,具体代码如下所示: public long createDiar...原创 2010-06-19 15:19:46 · 149 阅读 · 0 评论 -
Android应用程序概述
一. android应用程序开发方式 Android应用程序可以基于两种方式开发:Android SDK和Android 源代码二、 Android应用程序概念性描述1. Android应用程序包含了工程文件、代码和各种资源,主要有Java编写,每一个应用程序被编译成Android的一个Java应用程序包, 即*.apk文件.2. ...原创 2010-07-15 14:00:37 · 195 阅读 · 0 评论 -
Android 根文件系统启动过程
在Android系统启动时,内核引导参数上一般都会设置“init=/init”, 这样的话,如果内核成功挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序。这个程序所了什么呢? 我们只有RFSC(Read the Fucking Source code)!!init程序源码在Android官方源码的system/core/init中,main在init.c里。我们的分析就从main开...原创 2010-07-15 14:45:44 · 81 阅读 · 0 评论 -
浅析android通过jni控制service服务程序的简易流程
android_net_wifi_startSupplicant这个就是jni函数=>wifi_start_supplicantstatic const char SUPP_CONFIG_TEMPLATE[]= "/system/etc/wifi/wpa_supplicant.conf";static const char SUPP_CONFIG_FILE[] = "/data/misc/w...原创 2010-07-15 18:03:38 · 138 阅读 · 0 评论 -
INSTALL_FAILED_INSUFFICIENT_STORAGE调试错误的解决
2.2之前的所有模拟器都会遇到的问题,机器内存的瓶颈,当apk大于我们的机器内存时,模拟器无情的抛出Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGEPlease check logcat output for more details.Launch canceled!让我们无法调试 现在我们来根治这个问题,...原创 2010-07-20 11:26:31 · 234 阅读 · 0 评论 -
【转】Android通过Intent发送电子邮件含附件
如何在Android系统中发送带附件的电子邮件呢? 其实通过Intent可以很方便的发送Email,只需要短短10行代码就可以处理,这里Android开发网就以在sdcard上的android123.cwj文件为例,通过Intent来发送电子邮件。 完整代码如下 File file = new File("\sdcard\android123.cwj");...原创 2010-08-09 13:21:34 · 197 阅读 · 0 评论 -
NotificationManager and Notification
NotificationManager(通知管理器): NotificationManager负责通知用户事件的发生. NotificationManager有三个公共方法: 1. cancel(int id) 取消以前显示的一个通知.假如是一个短暂的通知,试图将隐藏,假如是一个持久的通知,将从状态条中移走. 2. cancelAll() 取消以前显示的所有通知. 3. notify(int id...原创 2010-08-25 10:55:05 · 101 阅读 · 0 评论 -
Android 2.2兼容性移植
近期很多手机都收到了OTA推送2.2固件,比如HTC Droid Incredible、HTC Desire G7等Android手机都开始获得Android 2.2 Froyo,而DroidX目前开始小部分推送测试。对于我们软件的兼容性有哪些影响呢? 1. 文件系统,大多数网友可能发现/sdcard/的路径已经变为/mnt/sdcard/了,所以过去硬编码相关的软件需要通过and...原创 2010-09-02 13:34:25 · 92 阅读 · 0 评论 -
Android Permission List
android.permission.ACCESS_COARSE_LOCATION允许一个程序访问CellID或WiFi热点来获取粗略的位置(Allows an application to access coarse (e.g., Cell-ID, WiFi) location)android.permission.ACCESS_FINE_LOCATION允许一个程序访问精良位置(如GPS)...原创 2010-09-02 16:43:00 · 270 阅读 · 0 评论 -
Asset限制文件大小UNCOMPRESS_DATA_MAX为1MB
在使用Android自带的Res\raw或使用Asset时都需要经过AssetManager,这将会产生一个比较严重的问题,在Android模拟器测试时不存在问题,但放到真机G1时会面临多个问题,经过查看UNCOMPRESS_DATA_MAX的取值为1048576字节,除以1024不难发现是1MB。也就是说Android手机在处理资源文件时不能大于1mb的体积。由于标准的G1没有Root权限...原创 2011-05-30 10:49:40 · 204 阅读 · 0 评论