Android 技术文章
文章平均质量分 55
wukunting
毕业于云南大学, 积极的心态,乐观地面对一切. 具备良好的沟通的能力. 热爱篮球,编程. 目前在做Android 应用程序开发
展开
-
Java ProtocolBuffer 编译
1. protocolBuffer 官网http://code.google.com/apis/protocolbuffers/docs/overview.html2. 从官网下载protobuf-2.4.1源代码和protoc 编译器3. 从http://maven.apache.org/下载 mvn. 下载之后将bin放到 系统PATH中。公司有代理的需要原创 2011-11-07 18:34:27 · 2169 阅读 · 0 评论 -
android 按纽状态配置文件
给出一个参考性的 按钮状态配置文件. 正常态, 选择态,获得焦点状态,按下态 android:state_pressed="false" android:state_enabled="true" android:drawable="@drawable/book_shop_normal" /> android:state_pressed原创 2011-06-28 17:26:00 · 3254 阅读 · 0 评论 -
让ViewGroup中的子View获得焦点
最近在用Viewgroup,碰到这样的问题:按手机键盘的方向键无法让其子View获得焦点。Viewgroup中的子View是通过inflate动态添加,并且Viewgroup是多屏,类似桌面程序.后来参考了Launcher的代码, 查了Viewgroup重写这么几个函数就可以达到让其子View获得焦点.1. addFocusables(ArrayListviews, int di原创 2011-06-25 12:30:00 · 11667 阅读 · 4 评论 -
在文字周围环绕一层阴影效果[android:shadow] 使用
<br />采用对style配置完成在文字周围环绕一层阴影效果. 具体配置如下: <br /> <br /><br /><TextView android:layout_height="wrap_content"<br />android:layout_width="wrap_content" android:layout_centerInParent="true"<br />android:clickable="false" android:text="@string/book_title_desc"原创 2011-04-27 14:19:00 · 7216 阅读 · 2 评论 -
锁屏和解锁屏
<br /><br />//解屏<br />protected void unlockScreen() {<br />setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);<br />}<br /> <br /> <br />//锁屏<br />protected void lockScreen() {<br />if (getResources().getConfiguration().orientation == Configur原创 2011-04-28 16:06:00 · 1343 阅读 · 3 评论 -
Loading waiting 实现方式
<br /><br />waiting_layout.xml 布局的代码: <br /><?xml version="1.0" encoding="UTF-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />android:orientation="horizontal" android:layout_width="280dip"<br />android:layout_gravit原创 2011-04-19 10:04:00 · 2380 阅读 · 3 评论 -
Launcher中做到长按时,别的图标自动让位(仿Iphone桌面)
在china-android-dev@googlegroups 邮件组看到有个朋友提问: 在 2011年6月4日 下午4:34,彭海涛 写道: 想问一下,刷过MIUI ROM的同学,知道那个图标位置挪动是怎么实现的吗?就是按住桌面图表之后可以改变图标的顺序,按着移动到别的图标上面的时候,别的图标会主动给他让位。这是怎么做的?正好我做过Launcher 的相关工作原创 2011-06-05 21:47:00 · 3496 阅读 · 13 评论 -
基于Launcher代码改进的水平视图容器(类gallery)
<br /> Android Launcher是基于水平的视图容器(ViewGroup)。最外面的是workspace,是一个viewgroup. 每一屏幕就是一个celllayout.,也是一个Viewgroup。Celllayout管理每个View,即cell.. 原生的android Launcher源代码里面对屏数有一定限制,是基于内存考虑的。<br />目前的我对Launcher改进,能满足对无限制数量的需求。大概的思路如下: <br />启动一个后台线程,用于后台构建View.原创 2011-05-29 09:31:00 · 1519 阅读 · 1 评论 -
Android 的一些实用的函数
<br />1. 获得屏幕的密度, 用于屏幕适配<br />public static float getDensity(Context ctx) {<br />DisplayMetrics metrics = new DisplayMetrics();<br />WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);<br />wm.getDefaultDisplay().getMetrics(me原创 2011-03-25 18:01:00 · 1025 阅读 · 0 评论 -
android 横竖屏
<br />横竖屏切换的问题: <br /> 1. android:configChanges="keyboardHidden|orientation", 可以避免重新开启Activity. <br /> 横竖屏切换会调用到: <br /> public void onConfigurationChanged(Configuration newConfig) {<br /> if (newConfig.orientation == Configuration.ORIENTATION_PORTR原创 2011-03-04 18:01:00 · 722 阅读 · 0 评论 -
SurfacView的使用及数据缓冲机制
最近在做一个项目,原来在手机运行非常流畅的代码移植到平板电脑中,运行就感觉明显很卡, 原因是平板电脑的分辨率是手机的两倍,而CPU还远达不到手机的两倍。原来采用ViewGroup的形式,就不得采用绘制到Bitmap的做法, 绘制到Bitmap这种做法,已经成A原创 2011-07-03 14:48:20 · 1265 阅读 · 0 评论 -
SurfaceView和View最本质的区别
SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。那么在UI的主线程中更新画面 可能会引发问题,比如你更新画面的时间过长,那么你的主UI线程会被你正在画的函数原创 2011-07-06 08:47:13 · 908 阅读 · 2 评论 -
Window下采用ant 脚本构建Android自动化编译
1. http://ant.apache.org/ 下载最新的ant脚本s2. android update project --name Tank -t 11 -p F:\tank 3. 出现“警告:编码 ascii 的不可映射字符”错误编译乱码解决办法: 找到\too原创 2011-10-14 23:15:33 · 2938 阅读 · 0 评论 -
ViewGroup提高绘制性能
Viewgroup如果下面有很多子View。绘制的时候,需要开启其子View的绘制缓存。从而提高绘制效率。具体的代码如下public void setChildrenDrawingCacheEnabled(boolean enabled) { final int coun原创 2011-08-19 21:37:39 · 3581 阅读 · 0 评论 -
采用spark和openfire实现即时通讯系统
名词解释: Xmpp: 采用xml数据封装格式的点对点通讯协议。是目前最流行,通用的即时通讯协议。Spark: 即时通讯客户端,类似QQ和MSN应用,代码实现采用smark类库(xmpp客户端类库),spark和smark都是开源的项目。采用Java语言编写.Open原创 2011-09-15 16:02:36 · 10807 阅读 · 2 评论 -
Gallery 的一些使用方法
最近做项目的时候碰到一个这样的需求: 1. 左右全屏滑动。不需要快速滑动2. 当Item滑动结束时候需要处理一些业务逻辑。 针对1. 重写Gallery 的onFling的方法. public class mygallery extends原创 2011-08-13 23:03:01 · 5737 阅读 · 0 评论 -
Android Zip解压缩类处理中文名乱码
写在前面: 最近在做epub格式的解析, 采用的是java.util.zipFile类,发现这个实体类 对中文支持不是很好。换了Ant包。结果编译体积就大了很多。 目前正在想办法解决。 目前Android平台上的底层库仍然有很多不完善的地方比如zlib库处理Zip文件时无转载 2011-08-09 13:57:41 · 5126 阅读 · 3 评论 -
Android Marcket将支持多个APK.
在android Marcket上支持多个APK. 这给开发者带来了福音。如果将一个apk能够适应手机和平板,那么apk的文件大小将会非常大。所以,google一方面要支持同一份代码,能够编译不同设备的版本。另一方面,macket支持上传不同的apk,用户根据设备的信息,下载合适原创 2011-08-06 10:15:27 · 1269 阅读 · 0 评论 -
Android 性能优化的一些方法(2)
1. cursor 的使用。不过要注意管理好cursor,不要每次打开关闭cursor.因为打开关闭Cursor非常耗时。 Cursor.require用于刷新cursor.2. 采用环形Buffer(可以采用链表数据结构实现)。可以设置一个链表长度的原创 2011-07-31 17:38:34 · 2002 阅读 · 0 评论 -
Android 性能优化的一些方法
1. 采用硬件加速,在androidmanifest.xml中application添加 android:hardwareAccelerated="true"。不过这个需要在android 3.0才可以使用。 2. View中设置缓存属性.setDrawingC原创 2011-07-23 16:30:06 · 2992 阅读 · 1 评论 -
Android客户端程序员的一些思考
Android客户端程序员的一些思考 最近在IT培训机构,到处都在贴“从java到android,实现高薪梦想”的广告。我一向对IT培训机构非常反感,可是从侧面也说明Android热。Google 的android平台的确带来了一场新的移动平台的革命。 Android原创 2011-07-09 19:24:22 · 1717 阅读 · 3 评论 -
Activity 间传递对象, 采用Parcelable
Activity 间传递对象, 采用Parcelable原创 2011-01-31 10:15:00 · 1453 阅读 · 0 评论 -
[Android]将一个视窗(windows)盖在整个Application的最上面
有这样的需求: 将一个窗口放在Appplication的所有Activity的最上面,该如何做到呢?原创 2011-01-31 10:02:00 · 3630 阅读 · 3 评论 -
使用Android隐藏类和隐藏方法
使用Android隐藏类和隐藏方法原创 2010-08-04 15:26:00 · 4475 阅读 · 3 评论 -
Android线程间通信的Message机制
Android线程间通信的Message机制原创 2010-07-22 17:42:00 · 2648 阅读 · 0 评论 -
Android 软件安装程序(*.apk)的结构分析、反编译以及汉化
<br />1/ apk文件结构: <br /><br />Apk文件: <br /><br />Android application package文件。每个要安装到OPhone平台的应用都要被编译打包为一个单独的文件,后缀名为.apk,其中包含了应用的二进制代码、资源、配置文件等。 <br /><br />apk文件实际是一个zip压缩包,可以通过解压缩工具解开。可以用zip解开*.apk文件,下面是一个helloword的apk示例文件 <br /><br />|– AndroidManifest.转载 2010-07-19 17:02:00 · 1237 阅读 · 0 评论 -
解决Assert目录下无法拷贝超大文件到SD卡的问题
Assert 目录文件拷贝时候, Android 有个规定就是文件大小不能操作1M, 不然会抛文件太大的错误. 解决办法如下. 将文件拷贝到类文件下: 代码示意如下: private static boolean copyFile(Context ctx, String filename, String des) { InputStream instream = null; try原创 2010-05-11 21:16:00 · 3176 阅读 · 0 评论 -
Android卸载不干净的时候, 尝试我这个方法
android 91助手卸载软件经常会卸载不干净.. 这个安装软件会发生冲突而导致无法安装成功.试试我这个办法: 另外一个办法就是将/data/system/packages.xml中该应用相应的信息删掉,重启模拟器/机器再安装即可原创 2010-04-23 11:22:00 · 22493 阅读 · 0 评论 -
OpenGL基础知识
1. 通过使用glGet()和glIsEnabled()功能函数查询OpenGl状态机的当前状态2. 绘制图元时,首先使用glBegin()功能函数来指定图元的类型,然后使用glEnd()功能函数来发送顶点。3. glVertex()功能函数在glBegin()/glEnd()代码块指定一个顶点,并且使用若干个不同的参数值以便你去定义坐标的数量,坐标的数原创 2010-04-24 20:59:00 · 1898 阅读 · 0 评论 -
Android 模拟器上Marcket.
http://developer.htc.com/google-io-device.html 该篇文章详细说明如何在Android 模拟器里面上marcket. 大概就是换下模拟器下载映像就可以搞定... 就是这么简单... 哈哈如果想知道如何制作映像的话.. 私聊了....原创 2010-04-19 10:09:00 · 834 阅读 · 0 评论 -
Surfaceview 与普通View 的差别
SurfaceView 与普通View 的区别 SurfaceView 提供了一个专用的嵌入View层级内部的绘制接口。你可以控制surface的格式,比如它的大小。SurfaceView 将会被放置在屏幕的合适位置。 Surface 是Z-order(Z序实际定义了窗口的层叠顺序),因此可以在窗口之下而持有SurfaceView; SurfaceView将会在窗口占有一块区域原创 2010-04-06 10:07:00 · 2359 阅读 · 0 评论 -
Activity ActionS
android.intent.action.ALL_APPSandroid.intent.action.ANSWERandroid.intent.action.ATTACH_DATAandroid.intent.action.BUG_REPORTandroid.intent.action.CALLandroid.intent.action.CALL_BUTTONandroid.intent.act原创 2010-03-31 22:01:00 · 854 阅读 · 0 评论 -
通俗的说OpenGL画图原理
通俗的说OpenGL画图原理原创 2010-06-10 15:44:00 · 17807 阅读 · 7 评论 -
获得外部Apk资源的实体类
获取外部Apk资源的实体类原创 2010-06-11 11:36:00 · 2696 阅读 · 0 评论 -
http://www.androlib.com/
<br />最近比较忙,都没有写点东东了,推荐一个网站了 http://www.androlib.com/ google marcket 所有应用和评论都在这个网站。原创 2010-11-13 11:19:00 · 2181 阅读 · 1 评论 -
解决android Launch2.2 源代码编译运行问题
<br />下载android Launch 2.2. 编译发现有问题, 这些问题好改,基本上就是按提示改到没有错误就可以了。 运行下,结果又问题, 只有默认screen 可以显示并且响应,其他screen都无法显示. 哈哈,纠结了半天,发现就一行代码就解决掉了。 发博文共享之: 在workspace.java 文件上<br /> <br /><br />@Override<br /> public void computeScroll() {<br /> Log.e(TAG,"39原创 2010-10-22 14:58:00 · 1716 阅读 · 0 评论 -
Android 开源项目列表
<br />找到一个非常全面的Android开源项目列表. 值得好好深究其中项目<br />http://en.wikipedia.org/wiki/List_of_Open_Source_Android_Applications原创 2010-08-19 11:49:00 · 1288 阅读 · 0 评论 -
获得root权限
<br />android获得root 权限 采用adb remount. 如果实在不行的话, adb shell su.原创 2010-06-22 18:01:00 · 738 阅读 · 2 评论 -
读大图像避免内存溢出方法
读大图像避免内存溢出方法原创 2010-06-18 10:09:00 · 1758 阅读 · 0 评论 -
Activity 与 任务
一、Activity与任务<br />一个activity可以启动另外一个,甚至包括与它不处于同一应用程序之中的。举个例子说,假设你想让用户看到某个地方的街道地图。而已经存在一个具有此功能的activity了,那么你的activity所需要做的工作就是把请求信息放到一个Intent对象里面,并把它传递给startActivity()。于是地图浏览器就会显示那个地图。而当用户按下BACK键的时候,你的activity又会再一次的显示在屏幕上。<br />对于用户来说,这看起来就像是地图浏览器是你activit转载 2010-06-18 11:03:00 · 2747 阅读 · 2 评论