喜糖

移动开发工程师 。涉及 android、ios、jni

导航

2013年5月6日

摘要: Android v4 兼容包提供android.support.v4.content.LocalBroadcastManager工具类,帮助大家在自己的进程内进行局部广播发送与注册,使用它比直接通过sendBroadcast(Intent)发送系统全局广播有以下几点好处。1 因广播数据在本应用范围内传播,你不用担心隐私数据泄露的问题。2 不用担心别的应用伪造广播,造成安全隐患。3 相比在系统内发送全局广播,它更高效。 阅读全文

posted @ 2013-05-06 11:15 喜糖 阅读(147) 评论(0) 推荐(0) 编辑

2013年4月29日

摘要: 如果所有操作数据的线程唯一, 即单线程操作数据库。 建议不要close。 这样能提升性能。但是如果有多线程操作。那还是建议close吧。在普通意义上getReadDatabase == getWritedatabase。在执行getReadDatabase时,是先执行getWritedatabase,只有失败后才拿可读的。 阅读全文

posted @ 2013-04-29 01:20 喜糖 阅读(1883) 评论(0) 推荐(0) 编辑

2013年4月26日

摘要: 原文地址:http://developer.android.com/training/basics/fragments/fragment-ui.html当设计你的程序去支持大部分屏幕尺寸时,你可以在不同的布局文件中复用你的碎片,在不同的屏幕空间中优化你的用户体验。例如,手机中可能一次只适合显示一个碎片,相反的,在大屏幕设备中,你可能想在一个界面中挨着显示很多个碎片。<ignore_js_op>图解:一个activity在不同屏幕尺寸的显示效果。在大屏幕中,两个碎片紧挨着显示,在手机中,一次只显示一个碎片。FragmentManager类提供一些函数,让你可以在程序运行时添加,删除和 阅读全文

posted @ 2013-04-26 16:34 喜糖 阅读(476) 评论(0) 推荐(0) 编辑

2013年4月22日

摘要: 缓存 Bitmap在您的UI中显示单个图片是非常简单的,如果您需要一次显示很多图片就有点复杂了。在很多情况下(例如使用 ListView, GridView 或者ViewPager控件),显示在屏幕上的图片以及即将显示在屏幕上的图片数量是非常大的(例如在图库中浏览大量图片)。在这些控件中,当一个子控件不显示的时候,系统会重用该控件来循环显示 以便减少对内存的消耗。同时垃圾回收机制还会释放那些已经载入内存中的Bitmap资源(假设您没有强引用这些Bitmap)。一般来说这样都是不错的,但是在用户来回滑动屏幕的时候,为了保证UI的流畅性和载入图片的效率,您需要避免重复的处理这些需要显示的图片。 使 阅读全文

posted @ 2013-04-22 11:52 喜糖 阅读(228) 评论(0) 推荐(0) 编辑

2013年4月18日

摘要: http://developer.android.com/guide/components/tasks-and-back-stack.html 阅读全文

posted @ 2013-04-18 16:50 喜糖 阅读(152) 评论(0) 推荐(0) 编辑

摘要: 没事读读这篇文章,讲解SQL语句的左右连接。 他真的内解决问题, 已改我Where万能的思想。http://www.cnblogs.com/cy163/archive/2008/10/16/1312920.html 阅读全文

posted @ 2013-04-18 10:12 喜糖 阅读(164) 评论(0) 推荐(0) 编辑

2013年4月17日

摘要: 从Android3.0 (API level11)开始,Android的2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承担了所有在View的canvas上执行的绘制操作. 启用硬加速最简单的的方法是对整个应用启用硬件速.如果你的应用只使用标准的view和Drawable,全局启用硬加速将不会带来任何负面影响.然而,因为硬加速不是被所有的2D绘制所支持,所以启用它时可能对你的自定义绘制产生影响.出现的问题经常是不可见的,也可能是异常,或错误地显示了像素.为了避免这些问题,Android提供了在以下各级别上启用或禁止硬加速的能力:ApplicationActivityWindowVie. 阅读全文

posted @ 2013-04-17 09:47 喜糖 阅读(325) 评论(0) 推荐(0) 编辑

2013年4月16日

摘要: Java nio从jdk1.4开始引入进来的。通常听到比较多的说法是: 你还没有用nio啊,你“out”啦;nio不阻塞,传统的I/O都是阻塞的,效率很低...... 如果你的系统在使用传统I/O上已经工作得很好且没有更多的性能等方面的要求,千万不要盲目地使用nio来重构(也许在你的系统的上下文环境中,使用nio所带来其它方面的复杂性会提高,处理增多,整体效率并未提高),这至少不符合敏捷开发的态度,简单说,不要为了nio而nio。当然这不阻碍我们对nio的认识。 Java nio是在Java编程中对I/O的另外一种高级的抽象方式。其对I/O的使用方式也更加贴近操作系统使用I/O的方式:通道和字 阅读全文

posted @ 2013-04-16 00:05 喜糖 阅读(301) 评论(0) 推荐(0) 编辑

2013年4月13日

摘要: http://www.cnblogs.com/myzh/archive/2013/03/17/2965225.htmlhttp://www.cnblogs.com/myzh/archive/2013/03/12/2954899.html 阅读全文

posted @ 2013-04-13 02:55 喜糖 阅读(147) 评论(0) 推荐(0) 编辑

摘要: http://www.cnblogs.com/cody1988/archive/2013/03/21/2973859.html 阅读全文

posted @ 2013-04-13 02:48 喜糖 阅读(145) 评论(0) 推荐(0) 编辑

2013年4月12日

摘要: (1)android.os.Process.setThreadPriority (int priority) 或 android.os.Process.setThreadPriority (int tid, int priority) priority:【-20, 19】,高优先级 -> 低优先级. 这个是基于Linux的优先级。 (2)java.lang.Thread.setPriority (int priority) priority:【1, 10】,低优先级 -> 高优先级. 这个是Java程序中对Thread的修改。测试后发现,使用android自己的API(第1种方法. 阅读全文

posted @ 2013-04-12 15:14 喜糖 阅读(471) 评论(0) 推荐(0) 编辑

2013年4月11日

摘要: 阅读全文

posted @ 2013-04-11 18:49 喜糖 阅读(126) 评论(0) 推荐(0) 编辑

摘要: 阅读全文

posted @ 2013-04-11 10:29 喜糖 阅读(169) 评论(0) 推荐(0) 编辑

2013年4月10日

摘要: TheSharedPreferencesclass provides a general framework that allows you to save and retrieve persistent key-value pairs of primitive data types. You can useSharedPreferencesto save any primitive data: booleans, floats, ints, longs, and strings. This data will persist across user sessions (even if you 阅读全文

posted @ 2013-04-10 17:53 喜糖 阅读(2310) 评论(0) 推荐(0) 编辑

摘要: 为了能在应用中启用和配置StrictMode,开发者最好尽可能在应用程序的生命周期的早段使用,方法是调用StrictMode的方法setThreadPolicy。当使用常用监控类的时候,一个最好的调用时机,是在应用中入口和activities被调用前进行。比如在一个应用程序中,可以把代码放在启动Activity类的onCreate()方法中,下面是一个代码示例,启用了当前情况下的所有策略及规则,当程序中出现违背常用的规则时,将会显示相关的提示信息窗口: StrictMode.setThreadPolicy(newStrictMode.ThreadPolicy.Builder().detec.. 阅读全文

posted @ 2013-04-10 11:52 喜糖 阅读(212) 评论(0) 推荐(0) 编辑

2013年4月9日

摘要: Intent filter中有”android.intent.action.MAIN” action和”android.intent.category.LAUNCHER” category的activity将被标记为task的入口。带有这两个标记的activity将会显示在应用程序启动器(application launcher)中。第二个比较重要的点是,用户必须能够离开task并在之后返回。因为这个原因,singleTask和singleInstance这两种运行模式只能应用于含有MAIN和LAUNCHER过滤器的activity。打个比方,如果不包含带MAIN和LAUNCHER过滤器,某个 阅读全文

posted @ 2013-04-09 23:33 喜糖 阅读(327) 评论(0) 推荐(0) 编辑

2013年3月6日

摘要: GC_MALLOC, 内存分配失败时触发GC_CONCURRENT,当分配的对象大小超过384K时触发GC_EXPLICIT,对垃圾收集的显式调用(System.gc)GC_EXTERNAL_ALLOC,外部内存分配失败时触发 阅读全文

posted @ 2013-03-06 15:02 喜糖 阅读(234) 评论(0) 推荐(0) 编辑

2012年11月15日

摘要: http://blog.csdn.net/hitlion2008/article/details/7983449 阅读全文

posted @ 2012-11-15 19:31 喜糖 阅读(113) 评论(0) 推荐(0) 编辑

2012年9月20日

摘要: (这里不教你如何分析heap快照,只说明如何在关键时候抓取)首先说一下,在程序没有崩溃的时候如何抓取heap快照。这个大家应该都知道,在ddms中自带此功能。见上图首先我们选中一个进程,然后点击 Update Heap按钮(小绿虫子旁边的按钮),这时就能看到heap使用情况如果想取出快照详细分析,我们可以点击 Dump HPROF File按钮,保存到电脑上面。使用android-sdk/tools/hprof-conv这个工具把文件转换一下,之后用MAT分析即可。Java代码hprof-conv'/home/su1216/data.hprof''/home/su121 阅读全文

posted @ 2012-09-20 18:30 喜糖 阅读(709) 评论(0) 推荐(0) 编辑

摘要: Weak引用对象与Soft引用对象的最大不同就在于:GC在进行回收时,需要通过算法检查是否回收Soft引用对象,而对于Weak引用对象,GC总是进行回收。Weak引用对象更容易、更快被GC回收。虽然,GC在运行时一定回收Weak对象,但是复杂关系的Weak对象群常常需要好几次GC的运行才能完成。Weak引用对象常常用于Map结构中,引用数据量较大的对象,一旦该对象的强引用为null时,GC能够快速地回收该对象空间。 Soft用来做缓存。Weak用来方便的找到一个引用,强引用消失,也就消失。 阅读全文

posted @ 2012-09-20 15:00 喜糖 阅读(496) 评论(0) 推荐(0) 编辑

2012年8月15日

摘要: 闲话少说,还是先来看一下为什么要使用GZip吧,HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来减少文件大小,减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。1、那如何在HTTP请求中使用GZip呢?一般来说,在HTTP连接中,并不是所有的接收者都支持GZip格式的,所以根据HTTP协议,如果你可以处理GZip格式,并且希望服务器以GZip的格式来返回内容,需要在HTTP的请求的Header中声明"Accept-Encoding"为"gzip" 阅读全文

posted @ 2012-08-15 18:28 喜糖 阅读(537) 评论(0) 推荐(0) 编辑

2012年8月7日

摘要: public static boolean isConnectionFast(int type, int subType){ if(type==ConnectivityManager.TYPE_WIFI){ System.out.println("CONNECTED VIA WIFI"); return true; }else if(type==ConnectivityManager.TYPE_MOBILE){ switch(subType){ case TelephonyMan... 阅读全文

posted @ 2012-08-07 11:57 喜糖 阅读(286) 评论(0) 推荐(0) 编辑

2012年6月29日

摘要: 在android网络开发中,对接入点判断是必不可少的,因为连接网络的时候如果是wap接入点,需要设置代。移动联通wap(代理相同:10.0.0.172:80),电信wap(代理:10.0.0.200:80)接入点类型:Net网络:运营商(移动联通电信)net网络,wifi,usb网络共享Wap网络:移动联通wap(代理相同:10.0.0.172:80),电信wap(代理:10.0.0.200:80)这样看来就可以抽象出三种网络类型:(1)联通移动wap(2)电信wap,(3)其他的都是net类型。importcom.shoowc.R;importandroid.app.Activity;imp 阅读全文

posted @ 2012-06-29 17:07 喜糖 阅读(1948) 评论(0) 推荐(0) 编辑

2012年6月27日

摘要: http://blog.sina.com.cn/s/blog_6052af03010154vp.html 阅读全文

posted @ 2012-06-27 11:09 喜糖 阅读(216) 评论(0) 推荐(0) 编辑

2012年5月16日

摘要: Expandlist中child的分割线高度等于group的分割线高度。 如果设置group的大小为几,child的就为几。ps: group的分割线为group上面的线。 group下面的线为child的线。也就是说,所有的线都为每一项的上面。 阅读全文

posted @ 2012-05-16 18:59 喜糖 阅读(161) 评论(0) 推荐(0) 编辑

2012年4月17日

摘要: 分享一个monkey的脚本:monkey -s 125670 -p com.sohu.newsclient --monitor-native-crashes --ignore-security-exceptions --kill-process-after-error --pct-trackball 0 --pct-nav 10 --pct-anyevent 10 -v -v --throttle 400 50000 >/sdcard/SohuNews_log_1.txt 2>&1 阅读全文

posted @ 2012-04-17 10:17 喜糖 阅读(329) 评论(1) 推荐(0) 编辑

2012年4月13日

摘要: 大家都知道,Android 2.3 SDK发布的时候,在SDK中增加了第三方add-ons,其中就包括了针对平板电脑的Galaxy Tab Addon。当我们启动一个新的平板电脑模拟器的时候,首先我们需要设置“Scale display to real size"选项,这将让平板电脑的屏幕大小与我们电脑屏幕的大小匹配。以我的电脑为例,我的屏幕大小是1440x900px。如果我们平板电脑模拟器上运行一个SDK 1.6的例子(我们至少需要 API level 4, SDK 1.6 for tablets),您将看到如下所示:我们的应用程序并没有填满整个平板电脑模拟器的屏幕,下面我们就来解 阅读全文

posted @ 2012-04-13 16:57 喜糖 阅读(261) 评论(0) 推荐(0) 编辑

2012年4月12日

摘要: 在Android的资源中存放图片的有默认的三个文件夹:drawable-hdpi/drawable-mdpi/drawable-ldpi.这三个文件夹中分别是对应三种等级的屏幕分辨率;drawable-hdpi:放高分辨率的图片,如:WVGA (480x800),FWVGA (480x854)drawable-mdpi:放中等分辨率的图片,如:如HVGA (320x480)drawable-ldpi:放低分辨率的图片,如:QVGA (240x320)以上都是我们很容易也是最常看到的一种解释,这种解释是对的,但是理解是有问题的不全面的。按照上面的理解我们一般会这么做,根据不同的手机分辨率我们存放 阅读全文

posted @ 2012-04-12 11:10 喜糖 阅读(1287) 评论(0) 推荐(0) 编辑

2012年4月10日

摘要: 现在,我们如何来确认SubActivity是不是在新的任务中启动并且位于这个新任务的堆栈底部呢?Android源代码工程为我们准备了adb工具,可以查看模拟器上系统运行的状况,执行下面的命令查看;[html]view plaincopyUSER-NAME@MACHINE-NAME:~/Android$adbshelldumpsysactivity 这个命令输出的内容比较多,这里我们只关心TaskRecord部分:[html]view plaincopyRunningactivities(mostrecentfirst):TaskRecord{4070d8f8#3Ashy.luo.task}.. 阅读全文

posted @ 2012-04-10 18:37 喜糖 阅读(6179) 评论(0) 推荐(0) 编辑

2012年2月13日

摘要: 这次的总结主要涉及到Dev Guide/User Interface中的Building Custom Components和How Android Draws Views内容和部分Graphics内容。围绕实现一个自定义圆角的ImageView控件(我将它叫做RoundedImageView)展开。首先说明How自定义控件。在Android中用于人机交互的组件叫做widget,比如Button,TextView之类,都直接或间接继承自View。说到这,自定义组件的方法就明朗了,就是使用继承,具体继承什么类根据你的需求定,当然直接继承自View类的话,这个就属于完全自定义了。这里有一个快速一点 阅读全文

posted @ 2012-02-13 16:39 喜糖 阅读(2362) 评论(0) 推荐(0) 编辑