摘要: 【这是一个线索】适配器君从不甘当线索,同样是设计模式,适配器模式不是今天的主题,今天的主题是在适配器中如何使用委托者模式以明确设计中的各元素的分工。一个具有适配器View的界面,Activity作为MVC模式中的控制器,数据控制应当由它完成。那么,为了让Adapter只负责数据界面绑定,Activi... 阅读全文
posted @ 2014-07-27 01:45 小change 阅读(1610) 评论(0) 推荐(0) 编辑
摘要: 世风日下,人心不古。如今四海虽看似太平,其实却暗藏杀机。大到一架飞机一辆公交,小到一个app,都会让您抓狂。越来越复杂的界面,越来越多的需求,对app来说本身来说就是一个噩耗,但在人类无穷的想象力,在功能模块无情的堆积之下,对于应用来说,要么瘦,要么死!那么如何瘦,怎么瘦?对广大爱美的程序员和产品和... 阅读全文
posted @ 2014-07-25 23:24 小change 阅读(2966) 评论(2) 推荐(1) 编辑
摘要: 我们或许曾一次又一次的接到这样的需求,有一堆数据需要用户去选择,并且以列表的方式呈现,根据需求,我们需要单选或者复选列表里面的数据,并且最终取得所选数据作下一步的操作。那么对于这个需求,我们聪明的程序员往往都能想到一些解决方案去处理。譬如我,咳咳,虽然我不是很聪明,但是我想到了。【也许这样实现是对的... 阅读全文
posted @ 2014-07-25 01:25 小change 阅读(3967) 评论(1) 推荐(1) 编辑
摘要: 多日未回博客园,风萧萧兮易水寒。话说上一次发表随笔已是去年,而且看看当时关于android视频方面的记录也只写了开篇就自动阉割成了太监,究其缘由已不堪回首。太监终究还是太监,没必要再为它续弦。笔锋一转,近日有看几本android应用方面优化和技巧方面的书,便觉得又该在此处记录下了。有一本专门讲技巧的... 阅读全文
posted @ 2014-07-13 23:37 小change 阅读(1939) 评论(3) 推荐(0) 编辑
摘要: 最近在做一个项目,简单说一下需求吧:android手机做前端视频采集入口,能捕获实时的视频流并传到服务器并且分发到pc客户端实时的进行视频的观看。就这个看似简单的需求,由于我之前对流媒体全无了解,也因为接入了XX平台进行数据中转,导致开发过程一再受阻。但就目前已基本将该项目流程走通,所以必须在这里来作个小结。在这里有几个关键点:a、视频数据如何获取。b、获取到的数据如何重新编码,以何种形式编码。c、以什么协议进行传输。d、视频最后的解码播放。android充当摄像头,进行流媒体传输的开源项目有spydroid。这个项目是研究android流媒体处理目前来说最好的切入点。网上也有很多对该项目源码 阅读全文
posted @ 2013-11-12 16:29 小change 阅读(6068) 评论(0) 推荐(0) 编辑
摘要: 今天在公司上班,因项目需求需要,同一套源码只是修改软件图标,以及服务器访问ip,端口等基础配置,编译出不同的定制版本。因为apk的唯一性是由工程包名来标记的,包名相同的apk不能够在同一台设备上安装,这就造成了项目演示不便,那么同事就抛出这个问题给我,并且也给我提供了几个方案:方案一:修改包名,这无疑是最直接的,但却是工作量最大的,改完AndroidManifest.xml下package="包名"配置,还要修改整个项目的类导包,以及R.java的重新生成。结果:我没有尝试,直接否定了。方案二:在同一工程中建两个包,一个是主项目包,另一个是定制部分,AndroidManif 阅读全文
posted @ 2013-09-24 22:53 小change 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 虽然我的项目经验不是很丰富,但是,就接手过的几个项目来说,如果在项目建立时存在下面提到的那些东西将会给项目的进行带来很大的方便,编写以下的那些类是个很好的习惯,也许大家都会这么做的吧,通常我把它们放在总包的.app包内,如图:看到这个图感觉熟悉的兄弟姐妹们就可以直接略过本篇啦...因为我要将要把它们一个个地拿出来长篇大论咯。一、MyApplication(代表本项目的类,它继承自android.app.Application)因为Application对象是在程序运行起来就创建在虚拟机中的,只有当程序退出之后它的对象才会销毁。所以它常用来创建和缓存程序中可能用到的对象的引用,这些对象往往是以单 阅读全文
posted @ 2013-08-30 16:39 小change 阅读(1251) 评论(1) 推荐(1) 编辑
摘要: 众所周知,在android里面充斥着众多的监听器,如一个按钮具有的OnClickListener,能对按钮的点击事件进行监听,这些监听器通常是一个接口,我们可以通过实现接口里的回调方法,执行事件处理。而AsyncTask也能通过其回调方法在恰当的时间执行异步任务(doInBackground()中),并且在执行完毕后回调到onPostExecute(),我们可以在onPostExecute下面获得异步任务的结果,并使结果安全地在UI线程中显示。AsyncTask是个抽象类,这些回调方法可能是抽象方法,也可能是普通的方法,像doInBackground是抽象方法,强制使用AsyncTask的人去 阅读全文
posted @ 2013-07-31 23:38 小change 阅读(1449) 评论(4) 推荐(2) 编辑
摘要: 在上节中我记录了Service的生命周期,现在就来熟悉一下如何来使用Service和Service有哪些特别需要注意的知识点。基本流程:一、建立Service,通过编写子类继承Service或IntentService。二、在AndroidManifest.xml中注册。三、在别的组件中调用startService(Intent intent)。具体说明: 第一步:建立服务 -extends Service 子类Service必须要覆写的回调方法是onBind(Intent intent),其返回IBinder对象。如果不需要提供绑定服务直接返回null,之后在生命周期方法中... 阅读全文
posted @ 2013-06-24 12:01 小change 阅读(5032) 评论(2) 推荐(1) 编辑
摘要: 移动终端的程序UI是很重要的,程序员往往在界面上花费很大的功夫,但也可能会因为太过关注界面忽略一些很重要的知识。刚刚接手一个项目是pc客户端android手机驻留程序,在android这边的开发主要是完成pc端需要的手机数据的读取和与pc客户端的通信。首先要说明一下这个程序是没有界面的,在程序启动器是找不到应用程序入口的。程序都是以Service的形式在后台偷偷摸摸的进行的。实现这些工作的方式用到的组件主要是Service和BroadcastReceiver。所以我就温习了一下这两个组件的相关知识和联系。-Service生命周期:相比较Activity,在生命周期中少了对界面的处理,少了OnR 阅读全文
posted @ 2013-06-21 00:02 小change 阅读(938) 评论(0) 推荐(0) 编辑