03 2012 档案
摘要:<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2006 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License a
阅读全文
摘要:<?xml version="1.0" encoding="utf-8"?><!-- Copyright (C) 2006 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License a
阅读全文
摘要:样式属性理解了样式是如何定义的之后,就需要学习<item>元素都定义了那些有效的样式属性类型。你可能已经熟悉了像layout_width和textColor属性,但是还有更多的可以使用的样式属性。查找应用于指定的View对象的最好的地方是对应的类参考,类参考中会列出所有的XML所支持的属性。例如,在TextView类的XML属性表中列出了所有的能够用于定义TextView元素(或者它的一个子类)的样式。在这个类参考中列出了一个属性:android:inputType,这个属性通常被放在<EditText>元素中,如:<EditText android:inputT
阅读全文
摘要:1914年7月4日,在美国国庆活动的现场上空出现了一架飞机,人群中爆发出一阵阵掌声和呐喊声--20世纪初期,飞机还是一个绝少有人接触的新鲜事物。飞机降落后,飞行员马罗尼便被潮水般的人群围住了。人们不但羡慕他的勇敢,更是对飞机这个怪物能够翱翔于高空充满了好奇。马罗尼笑着问周围的群众:“有谁愿意和我一起飞上天去试一试吗?”连问三遍,无人应声,这时,一个青年人霍地站出来,大声对马罗尼说:“先生,我想我可以同你一起飞上天”。在飞机上,那个青年人尽管心里有些害怕,可还是好奇地问这问那,不住地观察马罗尼驾机的每一个动作。20分钟过后,在人们的欢呼声中,飞机稳稳地降落下来,青年人面带微笑走出机舱,他大声向周
阅读全文
摘要:2010年10月5日,瑞典皇家科学院将本年度诺贝尔物理学奖授予曼彻斯特大学51岁的安德烈?海姆和36岁的康斯坦丁?诺沃肖洛夫,以表彰他们在石墨烯材料方面的卓越研究。在介绍两人的成就时,瑞典皇家科学院不乏溢美之词:"他们制备出石墨烯材料,向世界展示了量子物理学的奇妙,有关成果不仅带来一场电子材料革命,而且还将极大促进汽车、飞机和航天工业的发展。"并特别强调:"把研究工作视为'游戏',一直是海姆团队的特点之一,也使诺贝尔奖罕见地颁给了一项'年仅6岁'的成果。"实际上,海姆在2000年已经获得过"诺贝尔奖",
阅读全文
摘要:样式是给View或Window指定外观和格式的属性集合。样式能够指定如高、边距、字体颜色、字体尺寸、背景颜色等属性。样式被定义在一个与布局XML文件分开的XML资源文件中。Android中的样式与Web设计中的层叠式样表类似,允许与内容分开设计。例如,通过使用样式,可以把下面这个布局XML转换成引用样式的声明:不使用样式属性:<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#00FF00
阅读全文
摘要:设计拖放操作本节主要内容如下:1.如何开始拖拽;2.在拖拽期间如何响应事件;3.如何响应落下事件;4.如何结束拖放操作。开始拖拽用户使用一个拖拽手势开始拖拽,通常是在View对象上长按。在响应中,应该做下列事情:1.必要时,给要移动的数据创建一个ClipData和ClipData.Item对象,作为ClipData对象的一部分,在ClipData对象内部的ClipDescription对象中保存了元数据。因为拖放操作不代表数据的移动,因此可以使用null来代替实际的对象。例如,以下代码段显示了如何在ImageView对象的长按事件上创建一个包含ImageView对象标签的ClipData对象。
阅读全文
摘要:拖拽事件监听器和回调方法View对象既可以用实现View.OnDragListener接口的拖放事件监听器,也可以用View对象的onDragEvent(DragEvent)回调方法来接收拖拽事件。当系统调用这个回调方法或监听器时,都要给它们传递一个DragEvent对象。在大多数场景中你可能会使用监听器。因为在设计UI界面时,通常没有View类的子类,而使用回调方法,为了覆写这个方法,就会强制你使用View类及子类。相比之下,你可以实现一个监听器类,然后再几个不同的View对象中使用。你还可以把监听器接口作为一个匿名的内部类来实现。调用setOnDragListener()方法给View对象
阅读全文
摘要:用Android的拖放框架,能够允许用户使用图形化的拖放手势,把数据从当前布局中的一个View对象中移到另一个View对象中。这个框架包括:拖拽事件类、拖拽监听器、以及辅助的方法和类。尽管这个框架主要是为数据移动设计的,但是你能够把它用于其他的UI操作。如,你能够创建一个调色应用程序,用户把一个颜色的图标拖到另一个颜色图标之上,完成两个颜色的调配操作。概要当用户使用一些被认可的手势信号来开始拖动数据时,一个拖放操作就开始了。在响应中,应用程序会告诉系统拖动正在启动。系统就会回调应用程序来获得一个代表被拖动的数据的图形,当用户的手指移到这个代表图形(拖动阴影)当前的布局之上时,系统会把拖动事件发
阅读全文
摘要:以下是我的新博客连接地址:http://www.cnblogs.com/weinyzhou/这里以后不会更新了,请大家到我的新博客去
阅读全文
摘要:创建定制化的通知布局默认情况下,在通知窗口显示的通知包括标题和消息文本。这两项内容使用通过setLatestEventInfo()方法的contentTitle和contentText参数来定义的。但是,你也能够使用RemoteViews类给通知定义一个定制化的布局。如图3所示就是一个定制的通知布局的例子。它看上去与默认的通知类似,但是实际上它是用一个定制的XML布局来创建的。图3.带有定制化布局的通知。要给通知创建自己的布局,就要实例化一个RemoteViews对象,用它来填充一个定制的布局文件,然后把RemoteViews对象传递给通知的contentView属性字段。下面用一个例子来更好
阅读全文
摘要:响应通知围绕通知如何跟应用程序的UI流进行交互是用户体验的核心部分。你必须正确的实现以便在应用程序中提供一直的用户体验。由日历应用提供的两种典型的通知的例子,一个是能够对即将发生的事件发出一个通知,另一个是Email应用能够在收到新的消息时发出通知。它们代表了两种推荐的处理通知的方式:既可以启动一个跟主应用程序分离的Activity,也可以启动一个完整的用于显示对应通知的新的应用程序实例。下面场景描述了在这两种通知流中Activity堆栈是如何工作的,首先看如何处理日历通知:1.用户在Calendar应用中创建一个新的事件,并确认需要把电子邮件的消息部分复制到一个事件中;2.用户在主窗口选择E
阅读全文
摘要:绑定到一个Service 应用组件(客户端)可以调用bindService()绑定到一个service.Android系统之后调用service的onBind()方法,它返回一个用来与service交互的IBinder. 绑定是异步的.bindService()会立即返回,它不会返回IBinder给客户端.要接收IBinder,客户端必须创建一个ServiceConnection的实例并传给bindService().ServiceConnection包含一个回调方法,系统调用这个方法来传递要返回的IBinder.注:只有activities,services,和contentprovid..
阅读全文
摘要:mmsPlayer 2.0 将开源java部分,并且核心部分将升级。会简化所有的操作,并且对核心部分进行优化。若大家需要1.0部分也可以向我要。版权所有,未经允许不得转发。
阅读全文
摘要:状态栏通知(Status Bar Notifications)状态栏图标把一个图标添加到系统的状态栏(带有一个可选的文本提醒消息),并且还在通知窗口中添加一个通知消息。当用户选择这个通知时,Android系统会触发一个由通知定义的Intent对象(通常是要启动一个Activity)。你也能够在设备上给通知配置声音、震动、屏幕闪烁等效果来提醒用户。状态栏通知应该用于后台服务要求用户响应有关事件的场景中。为了接受用户的交互,后台服务不应该自己启动Activity。相反,服务应该创建一个状态栏通知,当用户选择这个通知时,才启动对应的Activity。图1在状态栏的左侧显示一个带有通知图标的状态栏。图
阅读全文
摘要:声明,有人破解我的mmsplayer,声称包含源码。我保留追究其法律责任。希望各位不要使用这部分源码。如果只用于个人练习和研究,暂且不追究。但是不能用于商业用途,希望各位自重。但是他无法破解我的libmmsplayer.so的代码,所以各位需要源码还是直接与我联系以免造成不必要的损失。此为我编译含debug调试信息的so文件,大家在购买时请检查一下文件大小不能提供so文件源码的尽量不要去购买,或文件大小与我的文件大小一样的话,就不要买了。否则会造成损失自负。版权所有,未经允许不得转发。
阅读全文
摘要:一.交流的对等性 交流双方要对问题有充分的认识和了解,彼此要对自己的理解进行充分而详细的表述,交流过程中不能因为职位的高低不同而左右对方的客观表述。二.交流的有效性 交流的主题要明确,最终双方要达成共识,没有共识的交流是无效的,不能做到软件实现中。三.交流的时效性 交流的问题要有前瞻性,这样才能对后续开发具备指导意义。四.交流的规范性 交流过程过程中要注意记录,交流的内容要提前准备,要双方提前了解,过程中不要跑题,准备的资料要标准规范。五.交流的成本 交流是有成本的,因此同类问题最好能够一次性解决,形成决议。六.交流的范围 交流的范围要界定清晰,边界的输入、输出、内部的逻辑规则、数据规则是讨论
阅读全文
摘要:广播通知(Toast Notifications)广播通知是在窗口表面弹出的一个消息。它只填充消息展现需要的空间,并且用户当前的Activity依然可见和可交互。通知自动的渐入渐出,不接受交互事件。下面图1显示一个例子是闹钟应用的广播通知,一旦闹钟被打开,就会在你设置的提醒时间显示一个广播通知。图1广播通知能够由Activity或Service创建和显示。如果你创建了一个源自Service的广播通知,它会显示当前有焦点的Activity的前面。如要需要用户对通知做出响应,请考虑使用状态栏通知。基础首先,用makeText()方法实例化一个Toast对象。这个方法需要三个参数:1.应用程序的Co
阅读全文
摘要:有几种类型的场景可能会要求你把应用程序中发生的事件通知给用户。有些事件需要用户响应,而有些则不需要。例如:1.当像文件保存完成的一个事件发生时,就应该显示一个短消息,提示用户保存成功了。2.如果应用程序正在后台运行,并且需要用户的关注,那么应用程序就应该创建一个允许用户方便响应的通知。3.如果应用程序正在执行用户必须等待的工作(如装载文件),那么应用程序就应该显示一个悬停的进度对话框。每种通知任务都能够使用以下三种不同的技术来实现:1.广播通知,主要针对来自后台的短消息;2.状态栏通知,主要针对来自后台的并要求用户响应的持续性提醒;3.对话框通知,主要针对Activity相关的通知。广播通知(
阅读全文
摘要:首先看命令定义:72 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);7374 U_BOOT_CMD(75 reset, 1, 0, do_reset,76 "Perform RESET of the CPU",77 ""78 );使用U_BOOT_CMD向系统添加了一条reset命令,当我们输入reset命令时,执行do_reset函数。42 int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char *
阅读全文
摘要:看门狗的作用我想大家都应该清楚,S3C2440看门狗定时器它不仅可以当作看门狗来使用,还可以当作普通的定时器来使用。S3C2440看门狗电路模块框图:看门狗电路采用PCLK作为时钟源,PCLK通过两个分频器之后才是看门狗定时器的工作时钟。那看门狗定时器的时钟到底是多少呢,有如下计算公式:t_watchdog= 1/[ PCLK / (Prescaler value + 1) / Division_factor ]prescaler value和division factor的取值是通过看门狗的控制寄存器WTCN来设置的,prescaler value取值范围为0~255,division fa
阅读全文
摘要:skia默认生成的是vs2010的工程项目,是因为,skia下需要用到windows sdk7.0的的一些头文件。其实可以自己改08的包含目录就可以编译了。下面说说怎么修改让支持08编译打开gyp_skia,默认是2010,修改成即可
阅读全文
摘要:370 #ifndef __HAVE_ARCH_STRLEN371 /**372 * strlen - Find the length of a string373 * @s: The string to be sized374 */375 size_t strlen(const char *s)376 {377 const char *sc;378379 for (sc = s; *sc != '\0'; ++sc)380 /* nothing */;381 return sc - s;382 }383 EXPORT_SYMBOL(strlen);38...
阅读全文
摘要:240 #ifndef __HAVE_ARCH_STRCMP241 /**242 * strcmp - Compare two strings243 * @cs: One string244 * @ct: Another string245 */246 #undef strcmp247 int strcmp(const char *cs, const char *ct)248 {249 unsigned char c1, c2;250251 while (1) {252 c1 = *cs++;253 c2 = *ct++;254 ...
阅读全文
摘要:164 #ifndef __HAVE_ARCH_STRCAT165 /**166 * strcat - Append one %NUL-terminated string to another167 * @dest: The string to be appended to168 * @src: The string to append to it169 */170 #undef strcat171 char *strcat(char *dest, const char *src)172 {173 char *tmp = dest;174175 while (*dest)176...
阅读全文
摘要:91 #ifndef __HAVE_ARCH_STRCPY92 /**93 * strcpy - Copy a %NUL terminated string94 * @dest: Where to copy the string to95 * @src: Where to copy the string from96 */97 #undef strcpy98 char *strcpy(char *dest, const char *src)99 {100 char *tmp = dest;101102 while ((*dest++ = *src++) != '\0')103
阅读全文
摘要:531 #ifndef __HAVE_ARCH_MEMSET532 /**533 * memset - Fill a region of memory with the given value534 * @s: Pointer to the start of the area.535 * @c: The byte to fill the area with536 * @count: The size of the area.537 *538 * Do not use memset() to access IO space, use memset_io() instead.539 */540 v
阅读全文
摘要:573 #ifndef __HAVE_ARCH_MEMMOVE574 /**575 * memmove - Copy one area of memory to another576 * @dest: Where to copy to577 * @src: Where to copy from578 * @count: The size of the area.579 *580 * Unlike memcpy(), memmove() copes with overlapping areas.581 */582 void *memmove(void *dest, const void *src
阅读全文
摘要:551 #ifndef __HAVE_ARCH_MEMCPY552 /**553 * memcpy - Copy one area of memory to another554 * @dest: Where to copy to555 * @src: Where to copy from556 * @count: The size of the area.557 *558 * You should not use this function to access IO space, use memcpy_toio()559 * or memcpy_fromio() instead.560 */
阅读全文
摘要:如果你需要你的service与远程进程通信,那么你可以使用一个Messenger来为你的service提供接口.此技术使用不必使用AIDL就能执行进程间通信(IPC). 下面是如何使用Messenger的概要:service实现一个接收从客户端的每个调用引起的回调的Handler.Handler被用来创建一个Messenger对象(它是Handler的一个引用).Messenger创建一个从service的onBind()返回给客户端的IBinder.客户端使用IBinder来实例化这个Messenger(它引用到service的Handler),客户端用它来向service发送Messag.
阅读全文
摘要:如果你的service仅被自己的应用使用并且不需跨进程工作,那么你可以实现你自己的Binder类使得你的客户端能直接使用service的公开接口方法.注:这只在客户端和service位于同一应用和同一进程中时才能工作,其实大多数都是这种情况.例如,在一个音乐应用需要把它的activity绑定到它自己的播放音乐的后台service时,这种方式就会很好地工作.下面是如何建立它:在你的service中,创建一个Binder实例,提供以下三种功能之一:Binder包含一些可供客户端调用的公开方法.返回当前的Service实例,它具有一些客户端可以调用的公开方法.或者,返回另一个类的实例,这个类具有..
阅读全文
摘要:在我写这篇随笔之前,你可以 Google 到几篇教你如何使用 NDK 编译 FFmpeg 的文章。但让人沮丧的是,当你按着文章中给出的方法去尝试编译 FFmpeg 时,你总是不能编译成功。你会遇到各种各样的错误,它们会让你渐渐丧失信心。我总结了一下导致编译失败几个原因:Google 提供的 NDK 有 BUG,需要修改 build-binary.mk 文件编译方法太复杂,或许还需要修改 FFmpeg 的源代码文章作者使用的 FFmpeg 源代码是 SVN 版,非正式版你所使用的操作系统不同和文章中使用的操作系统不同你需要对 FFmpeg 重新进行配置以符合你的具体需求我将在这篇随笔中解决上面这
阅读全文
摘要:因为编码问题,今天查了一上午,最后确认是因为mysql对中文支持不好导致的。 使用utf8-unicode的中文标点,居然一个标点符号占用了4个字节。导致urlencode转义时地址错误。最后改为utf8-general问题解决了.utf8-general不但占用的空间和比unicode的少,而且查询效率也快。但是缺点就是对字符支持没有unicode的多。
阅读全文
摘要:Ubuntu下编译AndroidNDK项目报arm-linux-androideabi-gcc:命令未找到NDK-BUILD失败,错误提示:make: ~/dev/android/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: 命令未找到找了半天,在网上终于找到个解决办法step1:sudo apt-get install libc6-dev-i386step2:sudo apt-get install ia32-libs
阅读全文
摘要:Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk ! /home/XXX/Android_install/android-ndk-r7/build/core/init.mk:258: *** Android NDK: Aborting.因为这个错误我整了一天了。这个错误时因为ndk种的awk文件比系统的版本要老很多,直接改ndk中awk的名字不够,直接将awk中bin目录改名。才可以。
阅读全文
摘要:今天新建了一个测试项目,#include "SkBitmap.h" #include "SkDevice.h" #include "SkPaint.h" #include "SkRect.h" #include "SkImageEncoder.h" int main (int argc, char * const argv[]) { // Declare a raster bitmap, which has an integer width and height, // and a format
阅读全文
摘要:在前台运行Service 一个前台的service是被用户强烈关注的从而不会在内存低时被系统杀死.前台service必须在状态栏上提供一个通知,这个通知被放在"正在进行"区域中,这表示这个通知不能被解除,除非服务停止了或者从前台移除了. 例如,一个从service播放音乐的音乐播放器,应被设置为前台运行,因为用户会明确地注意它的运行.在状态栏中的通知可能会显示当前的歌曲并且允许用户启动一个activity来与音乐播放器交互.Notification notification = new Notification(R.drawable.icon, getText(R.string.ticke..
阅读全文
摘要:1.用svn 从http://skia.googlecode.com/svn/trunk 下载官方源码不知道是因为版本问题,还是因为我电脑问题,需要手工自己创建out/gpy这个输出目录
2.修改py代码 修改处的代码,
在框中区域上加上这句话,根据自己存放的盘符进行修改。出现这个问题是因为我用的是命令行编译的,无法识别\cygdrive\e\
阅读全文
摘要:开始一个Service 你可以从一个activity或从其它应用的组件通过传递一个Intent(指定了要启动的服务)给startService()启动一个服务.Android系统然后调用service的onStartCommand()方法并且把Intent传递给它.(你永远不能直接调用onStartCommand().) 例如,一个activity可以在调用startService()时使用一个明确的intent开始前文的例子中的service(HelloSevice):Intentintent = new Intent(this, HelloService.class);startSer..
阅读全文
摘要:今天在做Launcher移植的时候出现unable to execute dex:java heap space 的错误,在网上收了一下解决方案,把这个问题解决了,现在把解决的方法说一下:有两种方法:第一种是 修改eclipse目录下面额eclipse.ini文件把第一行添加-vmC:\Program Files\Java\jdk1.6.0_24\bin\javaw.exe (你jdk的目录)修改-Xms128m-Xmx512m修改--launcher.XXMaxPermSize512m第二种解决方法是添加user Library,并把as system Library选上,并引入工程。(这种
阅读全文
摘要:远程访问就是通过网络远端访问你的计算机1.SecureCRT这也是我最早使用的一款软件,那个时候刚使用linux,是在winddows虚拟机中装的linux,当时用的虚拟机是VMware Workstation,linux是Fedora9。因为有些文件需要从windows下传输到虚拟机的linux中,到网上就搜到了这款软件,因为它有ftp功能,并且有个窗口,一端可选择windows下目录,另一端可选择linux下目录,这样可以方便的在windows和linux之间传输文件,非常方便。SecureCRT官网地址:http://www.vandyke.com/products/securecrt/
阅读全文
摘要:[文档最后修正时间: Aug 19, 2006, by Arturya]上一篇谈到 .NET 的 Hashtable 属于比较传统的算法. 并籍此复习了哈希表这种数据结构的经典原理. 下面我们来看看 Java 和 PHP 中又是如何实现 Hashtable 的. 之所以把 Java 和 PHP 的场景结合一起, 是因为他们俩的处理方式非常相似. 论述将以 java.util.HashMap 为主, 该原理同样也适于 PHP. HashMap 是 java.util.Hashtable 的轻量级实现, 且允许 NULL 作为关键字.通过前文, 我们已知由于 .NET Hashtable 哈希函数
阅读全文
摘要:Hashtable 是现代大多数程序员居家旅行, 不可不备的利器. 如 ASP.NET 程序员天天要打交道的 Application Items, Cache Items 均由 Hashtable 实现. 日常存储配置参数, 数据列, 我们也会用到 Hashtable 或是基于其的结构如 NameValueCollection 等等,.NET 2.0 推出后更增加了一个 System.Collections.Generic.Dictionary, 用法乍一看和 Hashtable 差不多, 甚至还有泛型的优势. 那么是否能说 Dictionary 将会取代 Hashtable? Hashtab
阅读全文
摘要:从类Service派生 如你在上节所见,使用类IntentService使得你实现一个"开始的"service非常容易.然而,如果你需要你的service以多线程方式执行(而不是使用工作队列),那么你需要从类Service派生来处理每个intent. 相比之下,下面的例子从类Service派生并实现了与上面使用IntentService例子完全相同的工作.也就是在一个线程中序列化的处理每个"开始"请求.public class HelloService extends Service { private Looper mServiceLooper; private ServiceH...
阅读全文
摘要:<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE log4c SYSTEM "">
<log4c version="1.2.1"> <config> <bufsize>0</bufsize> <debug level="2"/> <nocleanup>0</nocleanup> <reread>1</reread&
阅读全文
摘要:关于Android中的组件和应用,之前涉及,大都是静态的概念。而当一个应用运行起来,就难免会需要 关心进程、线程这样的概念。在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的。Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种不同模型的东西进行配置,在很多时候,能够简化上层开发人员 的理解难度,帮助大家更好的进行开发和配置。任务在 SDK中关于Task(guide/topics/fundamentals.html#acttask),有一个很好的比方,说,Task就相当于应用 (application
阅读全文