自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 问答 (1)
  • 收藏
  • 关注

原创 写在20120524:aidl

Android IDL =aidl 是一种idl(接口定义)语言,轻量级它可以生成一段代码,可以使在一个Android设备上运行的两个进程使用内部通信进程进行交互。1.建立一个aidl文件package com.google.android.sample;interface MDSInterface{ void playFile(int position);};2....

2013-07-31 09:07:31 111

原创 写在20120510:事件流程传递机制

学习:博客《老罗的Android之旅》中的事件传递,了解详情可以去他的博客看看,很多经典详细的源码分析!值得一看。 在Android系统中,键盘按键事件是由WindowManagerService服务来管理的,然后再以消息的形式来分发给应用程序处理,不过和普通消息不一样,它是由硬件中断触发的; 在系统启动的时候,SystemServer会启动窗口管理服务WindowManagerServi...

2013-07-31 09:07:03 126

原创 写在20120428:Timer的使用

在非UI线程中是不允许执行UI操作的,一般在非UI线程中可以采用Timer和handler来完成UI更新,或者直接用handler的postDelayed(),或者用AsyncTask(这里不展开)。其代码片段如下:Handler mHandler = new Handler(){ public void handleMessage(Message msg) { ...

2013-07-31 09:04:51 113

原创 写在20120410:PopupWindow使用报错

在使用PopupWindow时报如下错误:android.view.WindowManager$BadTokenException: Unable to add window token null……PopupWindow必须在某个事件中显示或者是开启一个新线程去调用,不能直接在onCreate方法中显示一个PopupWindow,否则永远会报错。...

2013-07-31 09:04:31 100

原创 写在20120229:多点触控,屏幕缩略图

目前手机应用已经越来越多的用到了手势,其中Launcher中大家比较熟悉的就是屏幕缩略图,那么简单的实现就需要了解之前的那篇博客,关于ViewGroup和View的触屏事件的描述,这里也用到了比较重要的两个方法。onInterceptTouchEvent()和onTouchEvent()。 熟悉Launcher的人都会知道源码中会有一个DragLayer类,这个DragLayer...

2013-07-31 09:03:57 102

原创 写在20120426:按Menu功能键未调用onPrepareOptionsMenu()

Android4.0平台上第一次按Menu功能键未调用onPrepareOptionsMenu(),很诡异,一般在2.2/2.3的Android平台上,onCreateOptionsMenu()和onPrepareOptionsMenu()这两个函数在创建Activity的时候就会被依次被调用,但Android4.0平台上第一次按Menu功能键却怎么没有调用onPrepareOptionsM...

2013-07-26 09:03:33 150

原创 写在20120423:让SQLite不区分大小写

SQLite本身是区分大小写查询的,大部分数据库在进行字符串比较的时候,对大小写是不敏感的,但是在SQLite中,对大小写是敏感的。那么有时候有这样的需求,让SQLite不区分大小写查询,那么有如下三种方式:1.使用大小写转换函数LOWER、UPPER。2.在进行比较时强制声明不区分大小写:"COLLATE NOCASE" 。3.创建表时声明该字段不区分大小写。这三种方...

2013-07-26 09:03:13 238

原创 写在20120412:onClick()方法提示错误

public void onClick(View v){}提示错误:必须实现抽象方法。找了半天原来是利用自动导包工具导入的包张冠李戴了。本来应该是import android.view.View.OnClickListener却自动导入成了import android.content.DialogInterface.OnClickListener,修改为上面的就OK了...

2013-07-26 09:02:56 100

原创 写在20120411:静态方法使用时注意事项

静态方法中不能出现this,super之类的关键字原因:静态对应的描述为属于某一个类,而this,super对应的描述属于某一个对象,编译的时候,会先编译静态的,所以在静态方法中调用this,super不合逻辑,引用不到当前的实例。...

2013-07-26 09:02:43 68

原创 写在20120410:layout_weight的使用

layout_weight的使用环境:1.控件所在Layout必须是LinearLayout。2.LinearLayout的orientation属性设置成"horizontal"3.子控件的layout_weight属性设置为"fill_parent"

2013-07-26 09:02:30 73

原创 写在20120402:退出应用程序

当用户点击自定义的退出按钮或者返回键时(需捕获动作),我们在onDestroy()里强制退出应用,或者直接杀死进程,具体操作的代码片段如下:@overrideprotected void onDestroy(){ super.onDestroy(); System.exit(0); //或者使用下面这种方式 //android.os.Process.kill...

2013-07-25 08:58:43 80

原创 写在20120329:跳转到Launcher主界面

从某一个Activity跳转到Launcher的主界面(桌面)Intent intent = new Intent(Intent.ACTION_MAIN);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.addCategory(Intent.CATGORY_HOME);startActivity(intent);...

2013-07-25 08:58:27 496

原创 写在20120307:EditText的text过长处理

EditText et=new EditText("");et.setFilters(new InputFilter[]{new InputFilter.lengthFilter(254)});这样就对该编辑框的输入字符进行了限制,只能输入254个字符

2013-07-25 08:58:17 188

原创 写在20120307:layout_gravity和gravity

android:layout_gravity="Center" 设置控件居中android:gravity="Center" 设置文本居中

2013-07-25 08:58:04 65

原创 写在20120301:文本文件的编码格式

怎样判断文本文件的编码格式?不同编码的文本,是根据文本的前两个字节来定义其编码格式的:ANSI: 无格式定义Unicode:前两个字节为FFFEUnicode big endian:前两个字节为FEFFUTF-8:前两个字节为EFBB...

2013-07-25 08:57:52 93

原创 写在20120221:Android系统日志

Android系统提供了详细的日志,包括以下几类日志:main:应用日志输出缓冲区,绝大部分应用(包括系统框架)日志都输出到该缓冲区。该缓冲区的大小为64KB。radio:无线应用日志输出缓冲区,大小为128KB。events:系统事件日志输出缓冲区,大小为64KB。system:系统服务日志输出缓冲区,大小为64KB。其他还有linux提供的日志: ksmg:linu...

2013-07-24 11:22:09 99

原创 写在20120215:CTS测试不通过项验证

往往遇到CTS测试不通过项,修改之后需要验证,只需要单项进行CTS验证即可,例如:$sudo -icd /home/company/2.3/android-cts-2.3 R11/tools./startctscts_host > start --plan CTS -t android.widget.cts.AutoCompleteTextViewTest#testPerfor...

2013-07-24 11:21:52 159

原创 写在20120207:拼接字符串

要拼接字符串,又需要拼接的字符串可以翻译各种不同的语言。在strings.xml中在需要拼接的字符串中添加标签xliff:g Selected %1$s item(s) 要识别此标签,需要xml的根标签内添加其命名空间以示支持。 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" %1$s其中这个字符串的id可以随便...

2013-07-24 11:21:39 80

原创 写在20120106:user模式下,新增应用打包到system.img

user模式下,新增应用有时候会出现无法编入到system.img中,如何打包到system.img,区分为两种途径:1.在device/qcom/common/common.mk文件中将该应用程序的模块名称添加到应用程序列表中即可。2.加到某个项目的编译脚本Project_name.mk,该编译脚本一般位于device/company_name/project_name/Project_...

2013-07-24 11:21:15 108

原创 写在20111215:Apk的安装和卸载代码片段

Apk的安装: 按照正常的打开查看方式,发送Intent,携带Action为Action_View、Uri、type,设置模块收到apk后缀名的文件,回去解析该Apk进行安装。Apk的卸载: 同样是需要发送Intent给Setting来处理 //获取apk文件的包信息 PackageInfo pkgInfo = getApkInStoragePackageInf...

2013-07-24 11:20:58 93

原创 写在20111214: PackageInfo ApplicationInfo ActivityInfo ResolveInfo

 ApplicationInfo是从一个特定的应用得到的信息。这些信息是从相对应的Androdimanifest.xml的标签中收集到的。 ResolveInfo这个类是通过解析一个与IntentFilter相对应的intent得到的信息。它部分地对应于从AndroidManifest.xml的标签收集到的信息。 PackageManager这个类是用来返回各种的关联了当前已装入设备了...

2013-07-23 09:05:51 182

原创 写在20111213:判断一个应用是否为系统应用

if((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)==0){ //非系统应用}在Android2.3 API Level 为9中,ApplicationInfo类新增的firsrInstallTime 和LastUpdateTime这两个字段,可以直接获取到APK的创建和上次修改时间。...

2013-07-23 09:05:28 146

原创 写在20111114:DeskClock功能Map

Alarm 定义闹钟的一系列属性(时间、重复、铃声、标签)AlarmAlert 以广播接收器接收闹钟id和内容AlarmAlertFullScreen 闹钟开始弹出时AlarmAlertFullScreen,其中执行响铃、点亮、解锁屏幕等操作AlarmAlertWakeLock 当闹钟响铃时点亮解锁屏幕AlarmClock Alarm页面的设置AlarmInitRece...

2013-07-23 09:05:02 94

原创 写在20111113:判断SD卡容量是否已满

public static boolean isEnoughSpace(long size){ if(Environment.getExternalStorageDirectory().equals (Environment.MEDIA_MOUNTED)){ File path = Environment.getExternalStorageDirector...

2013-07-23 09:04:48 88

原创 写在2011111:烧录app侧编译文件的批处理脚本

如题,也即是烧录arm11,烧录时保证此时能识别手机的adb端口,将下面的脚本写入一个fast_boot.bat文件中,要烧录时,双击该批处理文件即可adb reboot bootloaderfastboot flash boot boot.imgfastboot flash userdata userdata.imgfastboot flash system system.img...

2013-07-23 09:04:11 96

原创 写在20111112:单行可滚动显示的GridView

[color=red] [color=red] [/color]

2013-07-22 09:52:02 59

原创 写在20111111:定位光标到特定字符以及复制的实现

光标定位:EditText editText = (EditText)findViewById(r.id.textId);editText.setText("AAA");editText.setSelection(3);选择字符进行复制:ClipboardManager clipboard=(ClipboardManager)getSystemService(CLIPBOA...

2013-07-22 09:43:27 105

原创 写在20111028:Apk的安装和卸载

APK为AndroidPackage的缩写Android应用安装有如下四种方式:1.系统应用安装――开机时完成,没有安装界面2.网络下载应用安装――通过market应用完成,没有安装界面3.ADB工具安装――没有安装界面。4.第三方应用安装――通过SD卡里的APK文件安装,有安装界面,由 packageinstaller.apk应用处理安装及卸载过程的界面。应用安装的流程...

2013-07-22 09:16:51 60

原创 写在20111027:selector

假设现在需要设置一个ListView的ListItem点击的背景色,在drawable目录下创建下面的文件drawable/list_bg_selector.xml 实现按钮的点击效果 ...

2013-07-22 09:16:42 45

原创 写在20111020:应用界面进入出现闪屏问题

有些应用用户选择进入的时候可能需要finish当前的界面Activty,这时新起的这个界面Activty绘制出来,旧的界面Activty关闭的时候会让用户在视觉上有短暂的闪屏,这种情况都可以通过设置界面的主题为透明来解决。在每一个Activity配置的时候添加:android:theme="@style/Theme.Translucent"同时在res/values/下面添加一个sty...

2013-07-22 09:16:32 106

原创 写在20111011:checkbox的onClick事件

1.进入声音设置,勾选“选择操作音”;2.勾选文件或文件夹时观察是否有选择操作音;此时应该会对应的有选择操作音的,但为什么无选择操作音? 原来SoundManager对于CheckBox的check事件不感冒,只对click事件产生作用,而对于CheckBox有setOnCheckedChangeListener的API,但是没有setOnClickListene...

2013-07-19 12:08:08 393

原创 写在20111010:添加快捷方式到桌面

1.应用自身启动时创建快捷方式 当我们在模拟器或手机上屏幕上长按屏幕会弹出选择框,询问是否添加快捷方式等操作:当我们选择ShortCut后,就会出现一个ListView列出所有可以添加的items: 下面通过手动建立一个程序,添加了intentFilter为android.intent.action.CREATE_SHORTCUT的intent,这样当选择了它后,就会在桌面生成一个自定...

2013-07-19 12:07:56 66

原创 写在20111008:内嵌checkbox的ListItem点击无响应

在ListView里加入CheckBox,会导致点击ListView的item之后无法响应,只能点击CheckBox,原因是CheckBox的事件响应优先级高于ListItem,所以屏蔽了ListItem的单击事件,如果要使用onItemClick事件,需要设置CheckBox的android:focusable="false"。...

2013-07-19 12:07:43 75

原创 写在20110922:Broadcast

Broadcast分为三种:1.普通广播 无序 this.sendBroadcast(i) this.getContext().sendBroadcast(i, "权限")2.有序广播 (可以配置有序广播的优先级) this.getContext().sendOrderedBroadcast(i, null);3.粘性广播 this.s...

2013-07-19 12:06:31 62

原创 写在20110921:Cursor关闭问题

Cursor是查询数据后得到的一个管理数据集合的类,正常情况下,如果查询得到的数据量较小时不会有内存问题,而且虚拟机能够保证Cusor最终会被释放掉。然而如果Cursor的数据量特表大,特别是如果里面有Blob信息时,应该保证Cursor占用的内存被及时的释放掉,而不是等待GC来处理。并且Android明显是倾向于编程者手动的将Cursor close掉,因为在源代码中我们发现,如果等到垃圾...

2013-07-19 12:06:07 120

原创 写在20110920:Callback的理解

转载的,感觉这样理解还是蛮通俗的~~~~~通俗点说,就是事件结束后的回调方法。比如吃饭,有人吃完饭要散步,有人吃完饭要吃水果,有人吃完饭要休息,等等各种不同的需求,但是吃饭是大家都要做的现在要你提供一个动作:吃饭+饭后做的事然后你可以设计一个吃饭的方法: eat(),因为吃饭么就张嘴吃,没什么区别,大家都会用的这个动作,但是饭后的事呢?每个人的动作不一样,怎么办呢?由于饭后的事只...

2013-07-18 10:44:48 63

原创 写在20110919:Service的生命周期

Service的生命周期,只继承了onCreate(),onStart(),onDestroy()第一次启动Service,先调用了onCreate(),onStart()停止Service,调用onDestroy()再次启动启动Service,onStart()...

2013-07-18 10:36:26 49

原创 写在20110918:Eclipse中的outline标识以及常用快捷键

Eclipse中的outline标识。显示总共分为三种类型:1.颜色:红、黄、绿2.形状:方、菱、圆3.内部:实心、空心红方:private黄菱:protected绿圆:public实心:代码函数空心:代表变量此外还有一些字母标识C 代表createS 代码staticF 代表finalA 代表Abstract常用快捷键...

2013-07-18 10:33:10 261

原创 写在20110917:运营商应用合入定制

1.将**.apk放到正确位置: 一般放入到packages/custom///app/**.apk2.编写mk文件: /packages/custom///Android.mk 当apk文件中还依赖一些lib时,需要特殊处理,将lib文件的目录复制到system/lib文件夹下。如果直接拷贝到system/app目录下,apk文件编译时确实会打包到system.img中,且应用...

2013-07-18 10:25:10 55

原创 写在20110916:GMS包合入指南

1.将GMS中的google文件夹拷贝到device/目录下device\zte\products\***2.修改对应项目中的编译文件,将GMS包编入例如:X600.mk 将第6行打开,加入gms.mk文件,在编译的时候,就会将GMS包编入。$(call inherit-product,device/google/products/gms.mk)根据这一行上面一行的注释:#...

2013-07-18 10:19:35 169

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除