摘要: Android的广告平台是很多的,各市场对各平台的接受程度是不一样的,Android的开发者如果想集成广告基本要考虑下面两个问题:(1)集成什么广告,会赚钱?(2)集成什么广告,不会被市场拒绝?最终的结果往往是折中的。第一个问题是广告平台的判断问题,我没有发言权去评论,本文主要是针对第二个问题展开。解决方案就是打包应用的不同广告平台版本,本文接下来逐一展开相关话题。1. 基础本文其实是针对《Android学习系列(6)--App模块化及工程扩展》和《Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包》的一个扩展和应用场景。所以当然也需要这两篇文章的基础:(1). An 阅读全文
posted @ 2013-04-25 13:09 Androidworker 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 本文同步更新在http://hmu140482.chinaw3.com/?p=315。 Android的终端碎片化问题,是一个很讨厌的问题。 而对于国内开发者来说,Android的市场“碎片化”问题也是一个很头疼的问题。 一起先来看一段代码:?12345678910111213141516171819202122232425262728293031323334353637privateString getChannelName(String channelKey) {String result = "";if("dev".equals(channelKe 阅读全文
posted @ 2013-04-25 13:08 Androidworker 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 最近在工作中处理了一些内存泄露的问题,在这个过程中我尤其发现了一些基本的问题反而忽略导致内存泄露,比如静态变量,cursor关闭,线程,定时器,反注册,bitmap等等,我稍微统计并总结了一下,当然了,这些问题这么说起来比较笼统,接下来我会根据问题,把一些实例代码贴出来,一步一步分析,在具体的场景下,用行之有效的方法,找出泄露的根本原因,并给出解决方案。 现在,就从cursor关闭的问题开始把,谁都知道cursor要关闭,但是往往相反,人们却常常忘记关闭,因为真正的应用场景可能并非理想化的简单。1. 理想化的cursor关闭?1234// Sample CodeCursor cursor =. 阅读全文
posted @ 2013-04-25 13:06 Androidworker 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 随着工程越来越复杂,项目越来越多,以及平台的迁移(我最近就迁了2回),还有各大市场的发布,自动化编译android项目的需求越来越强烈,后面如果考虑做持续集成的话,会更加强烈。 经过不断的尝试,在ubuntu环境下,以花界为例,我将一步一步演示如何使用命令行,使用ant编译android项目,打包多渠道APK。 要点: (1). 编译android的命令使用 (2). ant基本应用 (3). 多项目如何编译(包含android library) (4). 如何多渠道打包 ps:我将以最原始的方式来实现,而不是使用android自带的ant编译方式,并尽量详细解释,这样有益于我们... 阅读全文
posted @ 2013-04-25 12:59 Androidworker 阅读(167) 评论(0) 推荐(0) 编辑
摘要: Android的ListView是应用最广的一个组件,功能强大,扩展性灵活(不局限于ListView本身一个类),前面的文章有介绍分组,拖拽,3D立体,游标,圆角,而今天我们要介绍的是另外一个扩展ListView:下拉刷新的ListView。 下拉刷新界面最初流行于iphone应用界面,如图: 然后在Android中也逐渐被应用,比如微博,资讯类。 所以,今天要实现的结果应该也是类似的,先贴出最终完成效果,如下图,接下来我们一步一步实现。1. 流程分析 下拉刷新最主要的流程是: (1). 下拉,显示提示头部界面(HeaderView),这个过程提示用户"下拉刷新" (2). 阅读全文
posted @ 2013-04-25 12:53 Androidworker 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 在Android的应用开发中,我们会用到各种代码调试;其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过高,内存泄露等,我们无法简单的进行代码调试,我们需要一个系统日志等等,下面我把握工作中碰到的几个常用命令和方法给大家演示实践一下。1.logcat命令这个命令最简单常用,可查看帮助,我不多说,如果需要打印时间,加参数-v time?1adb logcat -v time2.bugreport命令这个命令也非常简单,但是在实际应用中非常有用,会有从开机之后详细的dumpsys,dumpstate和logcat信息,是一份完整的日志记录。对分析用户行为,异常信息,系统状态有 阅读全文
posted @ 2013-04-25 12:47 Androidworker 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能。人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描一下,或者搜索一下,然后下单,不找零,直接送到你家,这将是手机支付给我们带来的全新交易体验。谷歌刚推出了谷歌钱包,这必是我们后面要使用的主要手段,但是鉴于当前国情,我觉得有必要介绍一下android手机集成支付宝功能。1.下载官方架包和说明文档其实官方已经提供了安装指南,下载地址:https://mobiless.alipay.com/product/product_down_load.htm?c 阅读全文
posted @ 2013-04-25 12:46 Androidworker 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的压力,而且因为更快速的用户体验而方便了用户。Android的apk可以说是作为小型应用,其中99%的应用并不是需要实时更新的,而且诟病于蜗牛般的移动网速,与服务器的数据交互是能少则少,这样用户体验才更好,这也是我们有时舍弃webview而采用json传输数据的原因之一。采用缓存,可以进一步大大缓解数据交互的压力,特此,我们简略列举一下缓存管理的适用环境:1. 提供网络服务的应用2. 数据更新不需要实时更新,但是哪怕是3-5分钟的延迟也是可以采用缓存机制。3. 缓存的过期时间是可以接受的(不会因为缓存带来的好处,导致某些数据因为更新不及时 阅读全文
posted @ 2013-04-25 12:44 Androidworker 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 最近经常思考团队开发的一些东西,其中代码风格不统一是最常见的问题之一。按理说,大家协商和沟通一下,风格统一一下就可以了,其实不然,因为这是个个性张扬的时代!工作code review中用了CheckStyle小半年了,觉得很好很强大很方便,大家写出来的代码就像一个人写出来的一样,值此辞旧迎新,特简做说明,与尔同飨。1.简介官方网站:http://checkstyle.sourceforge.net/CheckStyle提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来。CheckStyle检验的主要内容(1) 阅读全文
posted @ 2013-04-25 12:43 Androidworker 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 在上篇文章《Android学习系列(22)--App主界面比较》中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局。今天我们就这个经典布局,用代码具体的实现它。1.预览图先看下最终的界面设计图:上面顶部是一个9patch背景图片+标题文字;下面底部是5个tab标签,表示应用的5大模块。中间内容部分则是各个模块的具体内容,可以再分类,或者直接显示内容。2.准备素材按照上篇文章的界面,我们需要事先提供两大方面的素材:顶部+底部。顶部的素材非常简单,最重要的是背景(9patch的图片):底部的素材稍微多一点:(1).每个tab的背景都需要正常和选中两种,一共10张图片;(2).每个tab之 阅读全文
posted @ 2013-04-25 12:42 Androidworker 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 本文算是一篇漫谈,谈一谈当前几个流行应用的主界面布局,找个经典的布局我们自己也来实现一个。不是为了追求到底有多难,而是为了明白我们确实需要这么做。走个题,android的UI差异化市场依然很大,依然值得去挖掘。铸就经典,是为了超越经典!下面我们以下面10个应用来分析比较它们的主界面:1.QQ20112.新浪微博3.凤凰周刊4.小米读书5.微信6.太平洋电脑网7.360卫士8.Camera3609.大众点评网10.挖财1.QQ2011QQ应用最新版本QQ2011 Beta3,从最新的版本看,界面比之前简洁了一些。我以夜间模式为例子:从图中可以看出来,QQ分为3大模块:空间动态,QQ聊天,其他QQ 阅读全文
posted @ 2013-04-25 12:40 Androidworker 阅读(204) 评论(0) 推荐(0) 编辑
摘要: JSON数据格式,在Android中被广泛运用于客户端和网络(或者说服务器)通信,非常有必要系统的了解学习。 恰逢本人最近对json做了一个简单的学习,特此总结一下,以飨各位。 为了文章简明清晰,尽量多列点,少废话。 参考文档:http://www.ietf.org/rfc/rfc4627.txt?number=46271.JSON解析 (1).解析Object之一:?1{"url":"http://www.cnblogs.com/qianxudetianxia"} 解析方法:?12JSONObject demoJson = newJSONObject( 阅读全文
posted @ 2013-04-25 12:39 Androidworker 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 宜未雨而绸缪,毋临渴而掘井。----朱用纯《治家格言》 离线下载,在有网络的情况下下载服务器数据,以便无网络时也能阅读,就是离线阅读。 离线下载的功能点如下: 1.下载管理(开始、取消下载)。 2.网络判断(Wi-Fi,3G)。 3.独立进程。 4.定时和手机催醒。 5.自启动。1.下载管理 这里不便关注下载的细节方法,网络下载的方法很多,大概如下:?1234567891011121314151617181920212223242526272829/*** 下载文件* @param url 下载地址* @param dest 下载存放的本地文件* @param ... 阅读全文
posted @ 2013-04-25 12:37 Androidworker 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构。 关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐的代码,优美的分层总是一种舒服的享受的。 从艺术的角度看,其实我们是在追求一种美。 本文先分析几个当今比较流行的android软件包,最后我们汲取其中觉得优秀的部分,搭建我们自己的通用android工程模板。 1. 微盘 2.久忆日记 3.网易新闻 4.小米应用1.微盘 微盘的架构比较简单,我把最基本,最主干的画了出来: 第一层:com.sina.VDisk:com.... 阅读全文
posted @ 2013-04-25 12:36 Androidworker 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 本来这篇文章想并到上篇Android学习系列(16)--App列表之圆角ListView中的,但是若是如此就让大家错过一篇新的好的文章,着实可惜。上篇中我们使用shape,corners,gradient实现了一个渐变的圆角效果,但是在完文之后的实践中,我发现有时效果不甚满意,选中和放手的事件监听没有去正确的判断,然后渐变效果也比较单一,性能也觉得不是很快,不如用图片来的惊艳和迅速,又懒的去改原来的,所以我又用图片来实现一个更完美的效果。1. 准备您可能需要参考我之前的两篇文章:(1).Android学习系列(16)--App列表之圆角ListView(2).Android学习系列(4)--A 阅读全文
posted @ 2013-04-25 12:35 Androidworker 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 有些东西看多了,就厌烦了:extjs对我这种感觉最为强烈。甚至,有时觉得设计之殇是审美疲劳。直角看多了,就想看看圆角,不知何时,这几年刮起了一阵阵的圆角设计风:CSS新标准纳入圆角元素,iphone中几乎随处可见圆角设计,也开始出现很多圆角名片了...今天我们就实现一个圆角的ListView效果。圆角的设计,我们并不追求到处都用,无处不用,android中有少数界面用直角确实容易显得锋利,和周边界面太过对比而显得不协调,比如大栏目列表,设置等等,而采用圆角实现,则会活泼,轻松的多,也融合的特别好。1.感觉实际上在Android中因为SDK中没有默认对圆角的一个完整的支持,需要麻烦自定义设置才能 阅读全文
posted @ 2013-04-25 12:32 Androidworker 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 游标ListView,提供索引标签,使用户能够快速定位列表项。 也可以叫索引ListView,有的人称也为Tweaked ListView,可能更形象些吧。 一看图啥都懂了:1.游标(Fast scroll thumb) 就是右边的那个拖动的方块,这个非常的简单:?12345<ListViewandroid:id="@+id/tweaked_list"android:layout_width="fill_parent"android:layout_height="wrap_content"android:fastScrollEn 阅读全文
posted @ 2013-04-25 12:31 Androidworker 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 根据前面文章中ListView拖拽的实现原理,我们也是很容易实现推拽GridView的,下面我就以相同步骤实现基本的GridView拖拽效果。 因为GridView不用做分组处理,代码处理起来更简洁,而且原理前面已经讲解清楚了,代码中只是简单的过下,必要的地方简单的注释一下。1.主界面DragGridActivity.?12345678910111213141516171819202122232425262728publicclassDragGridActivity extendsActivity {privatestaticList<String> list = null;//自 阅读全文
posted @ 2013-04-25 12:29 Androidworker 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 接着上篇Android学习系列(10)--App列表之拖拽ListView(上)我们继续实现ListView的拖拽效果。7.重写onTouchEvent()方法。 在这个方法中我们主要是处理拖动和放下。 拖动是选中项的影像随着手指滑动;放下是在拖动结束的时候交换数据。 方法的整体结构如下:?1234567891011121314151617181920212223242526272829/*** 触摸事件*/@OverridepublicbooleanonTouchEvent(MotionEvent ev) {//如果dragmageView为空,说明拦截事件中已经判定仅仅是点击,不是拖... 阅读全文
posted @ 2013-04-25 12:27 Androidworker 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨。 鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章。一、准备。1.需求问题 初步:实现列表的拖拽效果(可参考Android源码下packages/apps/Music中的播放列表TouchInterceptor.java源码)。 (提前说明一下,本文不是完全按照Music中实现的,代码实现方式做了一些调整,去掉来很多无关的东西,方便大家理解,效果上也修改成了另外一种个人认为是更简单更高效的一套。) 拓展:借鉴上一篇文章Android学习系列(... 阅读全文
posted @ 2013-04-25 12:26 Androidworker 阅读(176) 评论(0) 推荐(0) 编辑