梦书之家(移动开发)

你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果;你有一个思想,我有一个思想,我们交换一下,一人就有两个思想。 ——肖伯纳

导航

2011年6月17日 #

查看系统自定义的样式

摘要: 要想查看系统自定义的样式,比如 style="?android:attr/dropDownItemStyle",1 首先当然必须有源代码2 其次查找的目录是在: <android_source>/frameworks/base/core/res/res/values 下的某个源文件中3 因为是attr,所以现在attrs.xml中查找: <!-- Default style for drop down items. --> <attr name="dropDownItemStyle" format="referen 阅读全文

posted @ 2011-06-17 21:35 梦书 阅读(521) 评论(0) 推荐(0) 编辑

2011年6月15日 #

为什么不能在AndroidManfiest.xml注册android.intent.action.SCREEN_ON的监听器呢?

摘要: 但是在代码中,注册监听倒是可以的,android.intent.action.SCREEN_OFF也是一样不能的意思是,其实写了receiver在解屏或者锁屏的时候都截获不到任何的消息搜到两篇老外的介绍:1 http://groups.google.com/group/android-developers/browse_frm/thread/81d84efa68578924?scoring=d&q=screen_on&2 http://stackoverflow.com/questions/2575242/android-intent-action-screen-on-does 阅读全文

posted @ 2011-06-15 11:11 梦书 阅读(6491) 评论(0) 推荐(0) 编辑

2011年5月20日 #

ReferenceTable overflow (max=512)

摘要: 参考: http://hi.baidu.com/lihn1987/blog/item/73fb281ac1a61cdaac6e752c.htmlGetObjectClass 以及 用 GetObjectArrayElement获取的对象退出JNI 函数或者不再使用的时候 需要用env->DeleteLocalRef() <C++>来释放引用。 阅读全文

posted @ 2011-05-20 10:49 梦书 阅读(768) 评论(0) 推荐(0) 编辑

2011年4月16日 #

Android中代码创建视图的好处

摘要: 所谓用代码创建视图,是指不是通过XML来构造Activity的视图或者ListView的中的每隔ItemView(如下所示),publicclass HelloWorld extends Activity { private TextView mTextView; @Override publicvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mText... 阅读全文

posted @ 2011-04-16 16:46 梦书 阅读(3127) 评论(1) 推荐(0) 编辑

2011年4月2日 #

HelloWorld using Object-C on Ubuntu

摘要: 1 安装sudo apt-get install gnustep*2 编写代码#import <Foundation/Foundation.h>int main( int argc, const char * argv[] ) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSLog(@"Hello world\n"); [pool drain]; return 0; }感觉是C与Java的结合体,C/C++包含头文件是#include <stdio.h>而Java中不存在 阅读全文

posted @ 2011-04-02 18:51 梦书 阅读(647) 评论(0) 推荐(0) 编辑

自定义控件之设置文本的大小

摘要: 一般我们要在我们自己的控件中放置文本的时候,都会通过Paint来实现:Paint paint = new Paint();paint.setAntiAlias(true);paint.setTextSize(16);但是,如果你在其他分辨率的手机上,查看文本的效果的时候,就会有问题,如果是在低分辨率的机器调试的话,放到高分辨率的机器上,就会感觉字体太小了;反之,太大。所以设置文本字体的时候不能采用以上的方式来设置,而应该采用与TextView类似的方法,如: public void setTextSize(int textSize){ Context c = getContext(); Res 阅读全文

posted @ 2011-04-02 14:44 梦书 阅读(915) 评论(0) 推荐(0) 编辑

2011年3月25日 #

android 无法启动模拟器

摘要: 前几天更新到最新的SDK与CDT但是就是无法启动模拟器,但是只是其中的一个,删除重新创建AVD也不行后来发现还真是根据Warning所说的:emulator: ERROR: could not find required kernel image (kernel-qemu).emulator: Your ANDROID_SDK_ROOT is probably wrong: /opt/android-sdk-linux_x86/,缺少qmenu文件从同事那考了个,启动就正常了。我想可能是当时更新的时候 不小心中途停止了以后更新也没有把这个文件更新下来可以看出,更新SDK的时候没有做校验 阅读全文

posted @ 2011-03-25 19:33 梦书 阅读(1061) 评论(0) 推荐(0) 编辑

2011年3月24日 #

Update plug-in ant from 1.7 to 1.8

摘要: 目前版本的ADT(10.0.1)需要Ant 1.8的支持如果不更新1.8,会报以下的错误:The Android Ant-based build system requires Ant 1.8.0 or later. Current version is 1.7.1...1)到网站(http://ant.apache.org/)下载Ant的目前最新的版本1.82)下载解压到本地的一个目录, 如 /opt/apache-ant-1.8.23)打开eclipse->Preferences->Ant->Runtime删除 Ant Home Entries下关于1.7的所有选项,然后 阅读全文

posted @ 2011-03-24 13:50 梦书 阅读(933) 评论(0) 推荐(0) 编辑

2011年3月5日 #

EditText 长按弹出的上下文菜单

摘要: 当EditText获取焦点后,如果长按EditText就会弹出一个上下问菜单如果剪贴板上没有内容的话,就不会有粘帖选项,否则就会有粘帖选项ClipboardManager cm = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);EditText继承自TextView,而该事件的处理是在TextView里面的函数void onCreateContextMenu(ContextMenu menu) 处理的,因此,要想修改这个选项单的话,可以重载该函数。另外,为了阻止弹出上下文菜单,也可以重载boolean getDefualtEdita 阅读全文

posted @ 2011-03-05 17:15 梦书 阅读(3752) 评论(0) 推荐(0) 编辑

关于9-patch图片作为背景图片

摘要: 如果一个TextView以一个9-patch图片作为背景图的话,需要先设置TextView的背景图,然后再设置文本,否则伸展的时候会出问题而且作为背景图片,不能采用缓存的方式供同一个页面上的其他TextView等View作为背景,这个规律也可以扩展到需要动态变化TextView上的文字的背景图片,或者会导致同一个页面上的同一个背景图的控件是一样的,而导致某些View文字在背景图外。 阅读全文

posted @ 2011-03-05 11:12 梦书 阅读(759) 评论(0) 推荐(0) 编辑

2011年3月4日 #

ListView起始状态定位在最后一项

摘要: 加两个属性即可:android:stackFromBottom="true"android:transcriptMode="alwaysScroll"这样,就像系统的短信会话界面,一进去,listview的滚动条就在底部,就显示最后一个项目 阅读全文

posted @ 2011-03-04 17:19 梦书 阅读(1328) 评论(0) 推荐(0) 编辑

2011年1月19日 #

编写Android的LKM(Linux Kernel Module)

摘要: 默认的内核是不支持加载与卸载LKM的,所以在编译Android的Linux内核之前,需要配置下,在Android的Linux内核的源代码,目录下,运行$ make menuconfig出现如下的图片:另外,按向左键选择,卸载模块相关注意:如果用官方的模拟器内核或者没有进行以上的配置的话:1 运行 insmod hello.ko 来加载模块的时候,会提示2 而如果运行 rmmod hello.ko 来卸载模块的时候,会提示 阅读全文

posted @ 2011-01-19 12:03 梦书 阅读(7066) 评论(0) 推荐(0) 编辑

2011年1月10日 #

Download Android source code

摘要: [更新] http://source.android.com/source/downloading.html新版的地址修改了: $ repo init -u https://android.googlesource.com/platform/manifest.git按照官方的文档下载与配置好git以及repo,$ repo init -u git://android.git.kernel.org/platform/manifest.git过会儿,在看到init finished后,再运行如下的命令,否则再运行一次上面的命令直到看到成功的提示$ repo sync以上的命令是下载platform 阅读全文

posted @ 2011-01-10 15:12 梦书 阅读(10531) 评论(1) 推荐(0) 编辑

Android 源码调试

摘要: http://wangliping.net/android_debug文中提到的 development/ide/eclipse/.classpath其文件是隐藏的(Ubuntu下显示隐藏文件:打开文件浏览器 然后点击左上角的 查看->显示隐藏文件(Ctrl+H))修改eclipse程序的配置 1)、修改eclipse缓存设置 把eclipse.ini(在eclipse软件的安装目录下)的3个值改为下面的值: -Xms128m -Xmx512m -XX:MaxPermSize=256m 2)把android-formatting.xml和android.importorde (这两个文件 阅读全文

posted @ 2011-01-10 13:20 梦书 阅读(2940) 评论(0) 推荐(0) 编辑

2011年1月8日 #

Android 源码编译

摘要: cupcake1 编译前 请先安装工具:http://www.cnblogs.com/Lynn_doo/archive/2010/03/18/1689285.html2 添加组件如果下载的版本没有被引入中文输入法,这里做适当修改:#cd /home/android/build/target/product/#gedit generic.mk打开这个文件后,在PRODUCT_PACKAGES中,加入PinyinIME,然后保存退出。这样在整体编译的时候就会把中文输入法也编译进system中了。再次运行 make的话,就可以看到如下的输出:Install: out/target/product/g 阅读全文

posted @ 2011-01-08 13:09 梦书 阅读(2312) 评论(0) 推荐(0) 编辑

2011年1月7日 #

Android SDK 版本相关

摘要: 版本 代号 API Level Linux kernel version Release Date 1.1 2 2.6.25 2009.02.09 1.5 Cupcake 3 2.6.27 2009.04.30 1.6 Donut 4 2.6.29 2009.09.15 2.0 Eclair 5 2 阅读全文

posted @ 2011-01-07 13:57 梦书 阅读(321) 评论(0) 推荐(0) 编辑

2010年12月29日 #

配置Samba服务器[zz]

摘要: http://blog.csdn.net/zhsp1029/archive/2010/09/26/5906359.aspx在ubuntu上安装一个samb1 运行命令sudo apt-get install samba等待samba安装完成。2简单配置samba假设现在默认的ubuntu用户是dream,配置步骤为:a 配置一个共享目录 配置文件位置 /etc/samba/smb.conf 在文件末尾加上:[share] comment = sam's work directory path = /home/dream/Samba //注意路径必须存在 否则在客户端访问的时候 会显示无 阅读全文

posted @ 2010-12-29 15:29 梦书 阅读(276) 评论(0) 推荐(0) 编辑

2010年12月23日 #

Android 内核源代码交叉编译(创建自己的模拟器内核,哈哈终于搞定了)

摘要: 本文是在Ubuntu10.10系统上进行实践的。1 因为我们需要Android的模拟器,所以需要安装Android的SDK,并创建AVD, 可以一次命名为AVD15,AVD22,AVD23,... AVD15对应1.5,AVD22对应2.2,AVD23对应2.3,...获取.config文件:在启动模拟器AVD15:$emulator -avd AVD15$pull /proc/config.gz . //将/proc/config.gz这个文件复制到本地的目录,对应Linux上运行该命令的当前工作的目录,下同然后,将其解压并保存为.config,留待后面使用2 arm编译器去网站下载arm工 阅读全文

posted @ 2010-12-23 15:49 梦书 阅读(15564) 评论(0) 推荐(0) 编辑

2010年12月22日 #

用NDK搭建Android的交叉编译环境[zz]

摘要: 参考:如何建立android的C/C++交叉编译环境Android开发手记一 NDK编程实例第一篇里面提到用非NDk编译的时候,无法运行,很有可能是版本不对,因此不能用最新的版本,应该用2008q3-41的版本这样可以自己写一些简单的工具来方便程序的开发另外:用adb shell操作的时候,用户的权限是root的用"id"命令就能看到uid=0(root),gid=0(root)文中用到的Makefile文件,简单修改了下,以便能够在各个平台中自由地切换:helloworld工程 阅读全文

posted @ 2010-12-22 17:23 梦书 阅读(284) 评论(0) 推荐(0) 编辑

2010年12月16日 #

Android源码

摘要: 1.查看剩余内存情况对应文件系统中: /proc/meminfo可以参考源码: android_util_process.cpp中的android_os_getFreeMemory2. 统计某个路径的可用空间用 StatFs (Retrieve overall information about the space on a filesystem. This is aWrapper for Unix statfs(). from package android.os) 阅读全文

posted @ 2010-12-16 11:47 梦书 阅读(426) 评论(0) 推荐(0) 编辑

2010年12月14日 #

GSM Command Strings【zz】

摘要: http://www.wynasia.com/gsm_standard_codes.htmWhen various network functions are selected via the cellphone's menu using the keypad, the cellphoneautom... 阅读全文

posted @ 2010-12-14 18:34 梦书 阅读(182) 评论(0) 推荐(0) 编辑

MMI Code Messages on Android[zz]

摘要: What MMI Codes does YouMail use? We use TWO (2) different codes.The first (*004*17142043114*11#) is used to tell your cellphone company that it should send all of your unanswered calls to YouMail instead of your cellphone co's voicemail system.Officially, we're enabling (turning on) the "Conditional 阅读全文

posted @ 2010-12-14 16:39 梦书 阅读(1489) 评论(0) 推荐(0) 编辑

2010年12月7日 #

晕 galaxy_tab_samsung_electronics 这个插件写的有问题

摘要: Android这次更新多了一个Samsung的一个Galaxy TAB ,而且把它单独列出来,看来以后Google会加入更多的第三方的API,比较郁闷的是,更新完这个组件,再次还能更新,会在Android SDK下会再次建议一个文件夹,只要每次更新都会先建一个文件夹,就这样没完没了地更新了:上图中的:addon_galaxy_tab_samsung_electronics_8与addon_galaxy_tab_samsung_electronics_8-2,addon_galaxy_tab_samsung_electronics_8-3里面的内容都是一样的另外,这个版本将adb.exe从/A 阅读全文

posted @ 2010-12-07 11:09 梦书 阅读(351) 评论(0) 推荐(0) 编辑

2010年11月19日 #

Winows Live Team, Verify Count --- 小心中招

摘要: 今天登陆hotmail 邮箱发向收到如下的邮件:----------------------------------------------------------------刚开始还觉得煞有其事的,但是发向竟然让我们提供密码,这个太不靠谱了。查了下发件人,发现是:Reply-To: From: Windows Live Team To: Subject: Verify AccountDate: Fri, 19 Nov 2010 03:05:52 +0000Importance: NormalIn-Reply-To:References:MIME-Version: 1.0更确信是假邮件了,如果 阅读全文

posted @ 2010-11-19 11:50 梦书 阅读(447) 评论(0) 推荐(0) 编辑

2010年10月26日 #

Ubuntu下运行Shell脚本

摘要: 将一个脚本保存为带有扩展名的文件,如test.sh,在终端上输入: chmod +x test.sh然后输入: test.sh终端显示: test.sh 找不到命令(后来看了鸟个私房菜,发现这样输入,系统只会在$PATH上列出的路径查找,而不会查询当前的目录有没有这样的命名,以找到的第一个为准)但是,如果在终端上输入: ./test.sh(这样就让系统在当前的目录下查询命名)就能运行成功。另外,如果脚本文件没有扩展名的话,在终端上输入: ./test 或者 test脚本都能执行成功,这是为什么呢?当然,如果不想输入chmod那一行命令的话,也可以直接执行,直接在终端上输入:/bin/sh te 阅读全文

posted @ 2010-10-26 18:16 梦书 阅读(20685) 评论(1) 推荐(0) 编辑

2010年9月30日 #

android系统应用程序使用的数据库相关

摘要: 联系人数据库/data/data/com.android.providers.contacts/databases下的(MB525手机的是: /data/data/com.motorola.blur.providers.contacts/databases/contacts2.db)contacts.db(1.6及其以下版本) contacts2.db(2.0及其以上版本)可以通过DDMS将其导出到PC上查看,可以以此来备份联系人数据。如果通过FileExplore看不到文件的话,可以通过以下的方式来将联系人数据导到PC上:$ adb shell$ su$ cd /data/data/com. 阅读全文

posted @ 2010-09-30 11:09 梦书 阅读(1730) 评论(0) 推荐(0) 编辑

相对(父控件)布局属性

摘要: 像android:layout_alignParentBottom, android:layout_alignParentTop, android:layout_alignParentLeft, android:layout_alignParentRight,android:layout_centerInParent等相对父控件的布局属性,只能在父控件为RelativeLayout时才起作用,而对... 阅读全文

posted @ 2010-09-30 11:05 梦书 阅读(456) 评论(0) 推荐(0) 编辑

2010年9月15日 #

NDK基础

摘要: NDK(Android Native Development Kit),其实就是Java语言里面调用C/C++语言写的代码,但是由于Android系统是基于Linux的,所以C/C++的代码只能用GCC来编译了,如果Android系统是基于Windows的话,我们就可以用VC++等IDE来编译了。当然,二者都需要Android系统提供一些Library来供C/C++调用。所以,在学习NDK之前,最好看看Java语言里面关于Native method的相关的内容,入门推荐:1 Thinking in Java, 2th edition. append B. The Java Native Int 阅读全文

posted @ 2010-09-15 14:23 梦书 阅读(529) 评论(0) 推荐(0) 编辑

2010年9月9日 #

Android上获取本机安装的应用程序

摘要: 在google上输入以上的关键字+ android,可以搜到的代码:List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);虽然,有些代码号称可以过滤掉系统自身的应用程序,但是只要细看代码就会发现,好像里面的那个布尔变量没有起到什么过滤的作用。 方法一:通过获取的安装包(包括安装的与系统自身的应用程序),对其android.content.pm.PackageInfo的packageName 进行过滤,但是Android与google的包比较容易过滤掉,但需要对不同产商进行适配; 方法二:枚举 \d 阅读全文

posted @ 2010-09-09 13:43 梦书 阅读(21547) 评论(8) 推荐(1) 编辑

2010年9月2日 #

Android 换行

摘要: 1 对于普通的文本,即不采用HTML等格式的文本,用 \n 即可实现人工换行2 而对于HTML的文本,当然也是采用HTML中的换行符,如 <br>或者<p> 阅读全文

posted @ 2010-09-02 10:21 梦书 阅读(8012) 评论(2) 推荐(1) 编辑