android
wangjun_pfc
这个作者很懒,什么都没留下…
展开
-
Android代码性能优化技巧
1. 目前来说Android 2.2的JIT性能有了本质的提高,不过对于老版本的程序提高Java执行效率还有很多语言特点来说,对于Java 1.5之后将会有明显的改进。下面的例子来自SDK: static class Foo { int mSplat; } Foo[] mArray = ... 上面的静态类Foo的执行效果和性能,我们分三个方法zero、one和two来做对比。 public void zero() { //大多数人可能简单直接这样写转载 2010-06-01 14:31:00 · 1786 阅读 · 0 评论 -
初识Activity
1.在一个Activity中使用多个View如果把Activity看作MVC中的Control?它负责管理UI和接受事件(包括用户的输入),虽然说一个Activity通常对应一个屏幕,但事实上,我们是可以只用一个Activity管理多个不同的View来实现简单的逻辑。首先,我们增加一个新的资源描述layout/second.xml。<LinearLayout xmlns:android="转载 2010-04-02 11:10:00 · 985 阅读 · 0 评论 -
三种形式的hello world
1.最简单的HelloWorld安装了SDK后,直接生成一个Android Project,一句代码不用写,就能跑出一个最简单的HelloWorld例程。我们看一下它的代码:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->pub转载 2010-04-02 09:44:00 · 932 阅读 · 1 评论 -
LogCat显示中文为乱码
很多在开发调试Android软件的网友可能会发现Logcat打印中文输出的为乱码,即使是设置DDMS的字符集为UTF-8问题依旧 一、简单调试 我们自己封装一个Toast调试显示类即可,但Toast的显示速度和开销相对较高,每次显示从底层来看均为线程处理,资源有些浪费,不过常规的提示性可以使用Toast.makeText这种方法来显示结果,目前来看还从来没有遇到中文显示乱转载 2010-03-31 15:27:00 · 5115 阅读 · 1 评论 -
减少android程序体积注意点
谷歌Android程序后缀名为apk它已经经过了压缩,但如果生成出的程序很大如何减小体积呢? 影响体积最大的因素在于资源文件的使用上,控制图片、3DS文件的大小很重要,这里在3D材质方面不建议使用实时运算,毕竟移动设备的耗电量和运算能力无法和PC相提并论。建议音乐文件少用WAV,如果简单可以使用高音质的MIDI文件,MP3播放在解码方面的占用不算很大,但需要降低MP3文件的转载 2010-03-31 10:40:00 · 965 阅读 · 0 评论 -
Android的Linux内核Bionic库介绍
Android使用开源Linux内核是众所周知的,除了使用的是ARM版本的内核外和传统的x86有所不同外,重要的是Google为Linux内核增强了不少东西,自己开发了Bionic库,同时又贡献会Linux社区了。首先GNU的内核在体积和运行效率上不适合移动设备,系统核心组件都是以动态库的形式驻留在每个进程中,运行效率和内存占用都是十分重要的问题。Google开发了一个自定义的库名为Bionic,转载 2010-03-31 09:26:00 · 2071 阅读 · 0 评论 -
APK文件为什么要签名才能发布?
很多开发人员不明白APK文件为什么必须签名才能发布,其实签名并非从Android平台开始,在过去从Symbian OS就开始需要签名才能发布,这样可以保证每个应用程序开发商合法ID,由于Android平台没有UID3的限制,部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序。不过目前比较好的是Android中所有的permission使用都是免费的,但从目前GIT项目中出转载 2010-03-30 17:22:00 · 2007 阅读 · 0 评论 -
AndroidManifest.xml文件剖析 (二)
有关AndroidManifest.xml文件的application分支我们有必要了解一些常见的属性,这里可以看到一些我们实用的选项,比如允许调试android:debuggable、任务关系android:taskAffinity,比如我们常见的方式创建一个新的任务实用标记FLAG_ACTIVITY_NEW_TASK,为程序制定一个主题,可以使用android:theme指向一个主题文件。转载 2010-03-30 16:21:00 · 631 阅读 · 0 评论 -
AndroidManifest.xml文件剖析 (一)
很多网友对于Android全局配置文件AndroidManifest.xml不是很熟悉,今天我们就一起看下它完整的结构以及每个节点的作用。在我们日常的开发中都少不了下面的配置,每创建一个Activity、Service都离不开这个全局配置文件,深入的了解可以简化程序代码以及提高程序的维护性。 在最外层包含了包名如 package="cn.android123.demo" 、软件的版本号转载 2010-03-30 16:19:00 · 617 阅读 · 0 评论 -
Android中动态改变ImageView大小
在layout.xml文件中定义了ImageView的绝对大小后,无法动态修改以后的大小显示,其实Android平台在设计UI控件时考虑到这个问题,为了适应不同的Drawable可以通过在xml的相关ImageView中加入android:scaleType="fitXY" 这行即可,但因为使用了缩放可能会造成当前UI有所变形。使用的前提是限制ImageView所在的层,可以使用一个内嵌的方法限制转载 2010-03-31 15:25:00 · 7287 阅读 · 1 评论 -
android1.6新增SD卡写权限WRITE_EXTERNAL_STORAGE
如果大家使用较新版本的SDK,比如Android 1.6版本SDK那么在写入SD卡时需要加入WRITE_EXTERNAL_STORAGE权限许可, 我们在androidmanifest.xml文件中加入下面这句 但是需要记住的是,你的项目使用的是超过1.6版本的SDK,比如你的API Level为3则不需要,如果为4或以上就需要加入这个权限了,老版本的项目自适应无转载 2010-03-31 15:22:00 · 6496 阅读 · 0 评论 -
学习Intent的使用
刚看到Intent的时候,我的确有点困惑:从字面上来说,它表示一种意图和目的;从使用上看,它似乎总是用于Activity之间的切换;而从它所在包android.content来看,它似乎与内容有关。所以,我想或许可以这样理解它: Intent类绑定一次操作,它负责携带这次操作所需要的数据以及操作的类型等。如果是这样的话,是否可以将它与事件处理联想起来?即一个Intent类似于一个Event。从转载 2010-04-02 11:42:00 · 1052 阅读 · 1 评论 -
Activity的生命周期
注意到在Activity的API中有大量的onXXXX形式的函数定义,除了我们前面用到的onCreate以外,还有onStart,onStop以及onPause等等。从字面上看,它们是一些事件回调,那么次序又是如何的呢?其实这种事情,自己做个实验最明白不过了。在做这个实验之前,我们先得找到在Android中的Log是如何输出的。显然,我们要用的是android.util.log类,这个类相当的转载 2010-04-02 12:35:00 · 647 阅读 · 0 评论 -
ArrayList LinkedList Set HashMap介绍
<br /> 在Java中提供了Collection和Map接口。其中List和Set继承了Collection接口;同时用Vector、ArrayList、LinkedList三个类实现List接口,HashSet、TreeSet实现Set接口<br />。直接有HashTable、HashMap、TreeMap实现Map接口。 <br /> Vector基于Array的List,性能也就不可能超越Array,并且Vector是“sychronized”的,这个也是Vector和ArrayLi转载 2010-06-01 17:28:00 · 1838 阅读 · 0 评论 -
Android开发注意点
一、AssetManager - 已知单个文件处理不能大于1MB,所以如果资源很大,建议使用Zip格式压缩存放。二、ScrollView中嵌入ListView - 这个作法可能会出现你的ListView仅仅显示1行半。三、Android自带的Zip处理类对文件名编码无法识别,也没有提供显示的设置方法,在zlib中写死了。四、使用一些资源对象记住关闭,比如对于文件流对象最后转载 2010-05-27 22:50:00 · 1417 阅读 · 1 评论 -
Context的作用
Context字面意思上下文,位于android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)转载 2010-05-27 16:20:00 · 2007 阅读 · 1 评论 -
Android布局Java代码构造法
一般情况下对于Android程序布局我们往往使用XML文件来编写,这样可以提高开发效率,但是考虑到代码的安全性以及执行效率,可以通过Java代码执行创建,虽然Android编译过的xml是二进制的,但是加载xml解析器的效率对于资源占用还是比较大的,一般一个简单的TextView,比如 android:id="@+id/textControl "转载 2010-04-23 23:12:00 · 4211 阅读 · 2 评论 -
主流移动平台特点分析
目前市面上主流的移动平台,iPhone OS、Symbian、Windows Mobile和Android它们有什么特点呢? 为什么今天的格局发生了微妙的变化,一起来看下吧:一、 Windows Mobile走向衰退1. 固件无法自动升级 - 不支持OTA2. 电阻式触控屏 - 现在有几个那个手写笔操作的,除非是山寨3. 糟糕的浏览器 - 即使是WM6.1的浏览器基于IE4,比Win98转载 2010-04-23 23:06:00 · 1632 阅读 · 0 评论 -
anroid API核心包介绍
android.util---------包含一些底层辅助类,如特定的容器类、XML辅助工具类等android.os-----------提供基本的操作服务,如消息传递和进程通信android.graphics-----作为核心渲染包,提供图形渲染功能android.textandroid.text.methodandroid.text.styleandroid.text.util----以上四个原创 2010-04-09 09:23:00 · 1001 阅读 · 0 评论 -
android中单位的简单介绍
过去,程序员通常以像素为单位设计计算机用户界面。例如,定义一个宽度为300像素的表单字段,列之间的间距为5个像素,图标大小为16×16像素等。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清内容。与分辨率无关的度量单位可以解决这一问题。 Android支持下列所有单位。 px(原创 2010-04-07 10:48:00 · 1295 阅读 · 1 评论 -
Android数据存储
在Android中,可供选择的存储方式有SharedPreferences、文件存储、SQLite数据库方式、内容提供器(Content provider)和网络。一.SharedPreferences方式 Android提供用来存储一些简单的配置信息的一种机制,例如,一些默认欢迎语、登录的用户名和密码等。其以键值对的方式存储,使得我们可以很方便的读取和存入.转载 2010-04-06 09:30:00 · 7530 阅读 · 5 评论 -
关于Dialog的简单体验
注意到android.app包下除了Dialog(可用于制作复杂的对话框)以外,还包括了几个系统定义好的对话框类,如DatePickerDialog、TimePickerDialog及AlertDialog。其中AlertDialog我上回用过一次,基本上就那样子了,今天看看另外两个对话框的使用吧。首先是DatePickerDialog类,修改代码如下:public class Hel转载 2010-04-02 15:25:00 · 690 阅读 · 1 评论 -
关于ListActivity的简单体验
android.app包里的几个类。首先是这个在平台自的例子中被广泛使用的ListActivity。这个类其实就是一个含有一个ListView组件的Activity类。也就是说,如果我们直接在一个普通的Activity中自己加一个ListView也是完全可以取代这个ListActivity的,只是它更方便而已,方便到什么程度呢?来做个例子瞧瞧。public class HelloTwoB ex转载 2010-04-02 14:55:00 · 1088 阅读 · 0 评论 -
android平台使用的单位
常用的 px (pixels)像素 -- 一般我们HVGA代表320x480像素,这个用的比较多。 dip或dp (device independent pixels)设备独立像素 -- 这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA cwj推荐使用这个,不依赖像素。 sp (scaled pixels — best for text size)放大像素--转载 2010-03-31 15:17:00 · 829 阅读 · 0 评论 -
如何判断Android手机当前是否联网?
如果拟开发一个网络应用的程序,首先考虑是否接入网络,在Android手机中判断是否联网可以通过 ConnectivityManager 类的isAvailable()方法判断,首先获取网络通讯类的实例 ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY转载 2010-03-31 15:14:00 · 1256 阅读 · 0 评论 -
Android蓝牙API之BluetoothSocket类(2)
通过前几次的讲解,很多网友相信对Android蓝牙相关开发可以很好的掌握了,通过BluetoothServerSocket可以方便的创建一个蓝牙服务器,使用BluetoothSocket类可以很好的处理连接,今天我们继续上次的内容说下Android下如何管理蓝牙套接字的连接,今天仍然使用BluetoothSocket类,处理具体的数据流。 在Java上处理数据流很简单,提供了InputS转载 2010-03-30 14:39:00 · 2368 阅读 · 3 评论 -
Android蓝牙API之BluetoothSocket类(1)
前面两篇文章中我们提到了有关Android平台蓝牙的配对、发现、启用等操作,本文开始通过BluetoothSocket类建立有关蓝牙通讯的套接字。从Android 2.0开始支持这一特性,蓝牙和LAN一样通过MAC地址来识别远程设备,建立完通讯连接RFCOMM通道后以输入、输出流方式通讯。 一、连接设备 蓝牙通讯分为server服务器端和client客户端,它们之间使用Bluetoot转载 2010-03-30 14:39:00 · 4494 阅读 · 5 评论 -
Android蓝牙API之BluetoothAdapter类(2)
从Android 2.0开始提供最全面的蓝牙开发接口,API Level为5的系统才能调用,目前Android Bluetooth API包含了主要以下几类:BluetoothAdapter BluetoothDevice、BluetoothSocket 、BluetoothServerSocket 和BluetoothClass 它们均在android.bluetooth这个包中出现。 我转载 2010-03-30 14:38:00 · 3405 阅读 · 0 评论 -
Android蓝牙API之BluetoothAdapter类(1)
使用BluetoothAdapter类,你能够在Android设备上查找周边的蓝牙设备然后配对(绑定),蓝牙通讯是基于唯一地址MAC来相互传输的,考虑到安全问题Bluetooth通讯时需要先配对。然后开始相互连接,连接后设备将会共享同一个RFCOMM通道以便相互传输数据,目前这些实现在Android 2.0或更高版本SDK上实现。 一、查找发现 findding/discovering de转载 2010-03-30 14:36:00 · 1199 阅读 · 0 评论 -
Android UI开发专题(五) Bitmap和Canvas实例
在Android UI开发专题的前五节我们讲到的东西主要是基础和理论内容,从本次Android123将通过实例代码来演示,本次主要是Bitmap和Canvas类的使用,根据要求缩放Bitmap对象并返回新的Bitmap对象。centerToFit方法一共有4个参数,返回一个Bitmap类型,第一个参数为原始的位图对象,width和height分别为新的宽和高,而Context是用来加载资源的上下文转载 2010-03-30 14:22:00 · 615 阅读 · 0 评论 -
Android UI开发专题(四) View自绘控件
很多时候想要设计漂亮的Android UI,使用Android自带的控件无法满足我们的需要就要考虑自绘控件,在Android界面显示类View,可以通过继承扩展重写相关方法来实现我们的图形绘制。 首先我们需要了解下View类的底层实现,在SDK中我们可以看到View直接继承于Java的基类Object,实现了图形绘制和按键事件Drawable.Callback KeyEvent.Callba原创 2010-03-30 14:22:00 · 559 阅读 · 0 评论 -
Android UI开发专题(三) 各种Drawable
本次我们主要讲解Android平台下的各种Drawable,这里在SDK的android.graphics.drawable包下面可以看到有各种Drawable类多达十几种,它们到底之间有什么关系和区别呢? 一、AnimationDrawable 顾名思义该类主要表示动画的图形类,可以实现逐帧播放的效果,下面代码示例如下 1. 定义一个cwj_animation.xml 放到r转载 2010-03-30 13:49:00 · 990 阅读 · 0 评论 -
Android UI开发专题(二) 之绘图基础
今天我们继续介绍Android平台底层绘图类的相关内容,在Android UI开发专题(一) 之界面设计中我们介绍了有关Android平台资源使用以及Bitmap相关类的操作,接下来将会以实例的方式给大家演示各种类的用处以及注意点。今天我们继续了解android.graphics包中比较重要的绘图类。 一、 android.graphics.Matrix 有关图形的变换、缩放等相关操作转载 2010-03-30 13:19:00 · 807 阅读 · 0 评论 -
你好Android-----Android新手入门
你好Anroid (Hello, Android) 首先的感觉是作为一个开发者你需要知道一些初步的印象,当你了解开发框架之后才更容易的写出HelloWorld程序在Android平台上,这将会很简单,看看下面是如何做的 (First impressions matter, and as a developer you know that the first impression you ge转载 2010-03-22 11:52:00 · 659 阅读 · 0 评论 -
Android中文SDK-----Android新手入门
Android新手入门 (Getting Started with Android ) 新手入门Android,请首先阅读下面的章节 (To get started with Android, please read the following sections first ) 安装SDK和插件 (Installing the SDK and Plugin ) 如何安装SDK和转载 2010-03-08 12:20:00 · 1748 阅读 · 0 评论 -
android的AndroidManifest.xml文件介绍
AndroidManifest.xml是每一个应用都需要的文件, 位于应用根目录下,它 描述了程序包的全局变量, 包括暴露的应用组件(activities, services等等)和为每个组件的实现类, 什么样的数据可以操作, 以及在什么地方运行。 主要包括以下各个元素。 A.包名(package):指定本应用内java主程序包的包名。当没有指定apk的文件名时,编译后产生程序包将以此命名。本包名转载 2010-03-30 15:56:00 · 1986 阅读 · 0 评论 -
AndroidManifest.xml文件剖析 (三)
有关Androidmanifest.xml文件中的数据提供,我们来看下Provider节点中用到的定义,可以看到包含了权限控制、排序方式完整的如下:list" android:enabled=["true" | "false"] android:exported=["true" | "false"] android:grantUriPerm转载 2010-03-30 16:22:00 · 893 阅读 · 0 评论 -
Android定制Home Screen
1.Android上的Home Screen(桌面屏幕)如何添加Widget,常规的Android系统我们只能通过在桌面上按下Menu键,在Add中找到Widget项中的clock、search以及photoframe,但我们不能添加其他的widget。 2.自己如何定制Home,直接修改Android的git源码中的Launcher.git包即可,在长按Home键时由于都触发了andr转载 2010-03-31 14:42:00 · 1697 阅读 · 0 评论 -
Android平台特殊的地方
其实要说特别的地方还是很多,不过Android的确在很多地方都让我们感到意外。 1.Android程序的生命周期,这个由系统管理一个历史栈的方法的确可以加快常用程序的使用,但是程序的不彻底推出也存在一个严重的问题,部分Android软件由于开发人员的技术问题直接导致了G1的功耗十分大,比如滥用SQLite数据库查询,虽然Google为我们提供了一个不错的数据存储环境,但是SQLite毕竟是基转载 2010-03-31 14:02:00 · 576 阅读 · 0 评论 -
Android Logcat的使用
Android Logcat使用起来可以方便的观察调试内容,基本上的使用方法(巧用Logcat调试程序)。本次要说明的是平时的Log.v Log.d Log.i Log.w Log.e的区别是什么? 一、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("",""); 二、Log.d的输出颜色是蓝色的,仅输出debug调试转载 2010-03-31 11:59:00 · 904 阅读 · 1 评论