android
xb_smart
“It’s the little details that are vital. Little things make big things happen.”
展开
-
Mina使用
在android项目中,与代理服务器之间通信一般都是采用TCP,由于在项目中要实现的功能中还有心跳,需要定时与服务器进行心跳交互,另外客户端要随时准备接收来自服务器的消息,因此采用了Mina,发现Mina使用起来挺方便的,就是要注意处理丢包、粘包问题,还有就是与Android a原创 2011-09-26 20:23:39 · 3147 阅读 · 4 评论 -
利用volley进行http设置请求头、超时及请求参数设置(post)
这里以post请求说明,get请求相似设置请求头及超时。1.自定义request,继承com.android.volley.Request2.构造方法实现(basecallback,为自定义的监听,实现Response.Listener,ErrorListener接口)--post请求 public BaseRequest(String url,String params, BaseC原创 2013-09-29 14:53:18 · 52709 阅读 · 10 评论 -
TextView打字机效果
这个效果是从豌豆荚的开眼App中发现,是App其中一个较小的一个炫酷效果: 实现原理想到的是通过handler切割字符串并不断增长设置实现,效果还行,哪个同学有好的方法,可以分享哈。下面直接贴代码了,比较简单。public final class WriteTextHandler extends Handler { private final CharSequence conte原创 2015-08-26 19:00:57 · 1628 阅读 · 0 评论 -
gradle批量签名打包
android { signingConfigs { config { keyAlias '****' keyPassword '123456' storeFile file('/Users/admin/Documents/admin.keystore') storePasswo原创 2015-08-12 14:33:11 · 1260 阅读 · 0 评论 -
如果让我重新设计一款App
转载请注明出处:本文来自aspook的博客:http://blog.csdn.net/ahence/article/details/47154419开发工具的选择开发工具我将选用Android Studio,它是Google官方指定的Android开发工具,目前是1.2.2稳定版,1.3的预览版也已经发布了。Android Studio的优点就不需多说了,GitHub上大部转载 2015-08-11 12:05:46 · 1227 阅读 · 0 评论 -
Android搭建本地服务
Android搭建本地服务在项目中涉及的本地server主要场景有两种: 1.实现类似于PC端视频播放的边看边缓冲,实现良好的播放体验 2.分享手机内容,如图片/音视频目前接触到相关的比较好多框架是nanohttpd和AndroidAsync。 nanohttpd是一个轻量级的http服务框架,源码只有一个文件,应用也非常方便,如官方的一个简单的例子:public class App exte原创 2015-07-17 14:39:04 · 3505 阅读 · 2 评论 -
App工程结构搭建:几种常见Android代码架构分析
原文:http://mobile.51cto.com/abased-386212.htm关于Android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐的代码,优美的分层总是一种舒服的享受的。从艺术的角度看,其实我们是在追求一种美。本文先分析几个当今比较流行的android软件包,最后我们汲取其中觉得优秀的部分,搭建我们自己的通用an转载 2015-04-30 21:45:13 · 4142 阅读 · 0 评论 -
Android 4.0硬件加速
转:http://zuiniuwang.blog.51cto.com/3709988/721798 从Android 3.0开始,Android 2D的绘制流程就设计为能够更好地支持硬件加速。使用GPU的View在Canvas上进行画的操作时都会使用硬件加速。在最新的Android版本里,图形硬件加速及绘制技巧得到了更好的提升,51CTO特约了最牛网站长作为本站专栏作者,为各位网友撰写A转载 2015-04-25 13:19:34 · 598 阅读 · 0 评论 -
如何给你的android安装文件瘦身
本文翻译自:Putting Your APKs on Diet 原作者:Cyril MottierAndroid的apk文件越来越大了这已经是一个不争的事实。在Android 还是最初版本的时候,一个app的apk文件大小也还只有2 MB左右,到了现在,一个app的apk文件大小已经升级到10MB到20MB这个范围了。apk文件大小的爆炸式增长主要是因为用户对a转载 2015-04-22 22:43:38 · 642 阅读 · 0 评论 -
倍数提高工作效率的Android Studio奇技
转载自:JeremyHe博客这是从Philippe Breault的系列文章《Android Studio Tips Of the Day》中提取出来的自认为精华的部分。这些技巧在实际应用中能够非常大的提高工作效率。关于快捷键The File Structure Popupctrl+f12 此快捷键可以调出当前文件的大纲,并通过模糊匹配快速跳转至转载 2015-09-05 12:21:04 · 693 阅读 · 0 评论 -
gradle使用资料
Gradle基础:http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/gradle官方指导:https://docs.gradle.org/current/userguide/userguide.htmlAndroid项目中如何用好构建神器Gradle:http://www.csdn.net/article/原创 2015-09-26 12:36:26 · 353 阅读 · 0 评论 -
Android开发实用开源工具
1.Android极速渠道打包工具packer-ng2.开源Android/IOS播放器:ijkplayer3.手势支持、播控、自定义UI、真正全屏播放器:JieCaoPlayer 4.支持多任务、断点续传、高并发下载引擎:fileDownloader 5.强大并且灵活的RecyclerViewAdapter(header/footer,下拉刷新、上拉加载、item原创 2016-07-03 17:02:46 · 850 阅读 · 0 评论 -
Android Studio构建优化
开启gradle单独的守护进程在下面的目录下面创建gradle.properties文件:/home//.gradle/ (Linux)/Users//.gradle/ (Mac)C:\Users\\.gradle (Windows)并在文件中增加:1org.gradle.daemon=true转载 2016-06-14 17:13:21 · 321 阅读 · 0 评论 -
APP研发录读书笔记:网络底层框架设计
一.统一响应实体类Response 我们一般采用JSON作为API返回结果,数据格式一般为:{ "errorCode":0, "errorMessage":""; "result":{}}一般有错误码,错误消息及返回数据,因此可以定义Response如下:public class Response { private int errorCode; private原创 2016-06-02 19:06:24 · 797 阅读 · 0 评论 -
Canvas之基本形状操作
Canvas之基本形状操作转载 2016-06-01 22:56:01 · 3737 阅读 · 1 评论 -
Canvas之画布操作
canvas 画布基本操作转载 2016-06-01 22:50:40 · 4438 阅读 · 1 评论 -
Android 开发值得订阅的日报和周刊
Android Weekly Android Weekly 是由一群国外知名的Android 开发者维护,分享的内容不仅仅只有干货,而且还有最新的技术分享,也是Android 开发圈子最早,最有名的周报。如果想看中文版,请移步知乎专栏——《Android Weekly - 知乎专栏》。Android开发技术周报Android开发技术周报是由@脉脉不嘚語 维护更新,截止到现在转载 2016-04-27 21:36:15 · 1944 阅读 · 0 评论 -
Agrea响应式编程解读
转载自:http://zjutkz.net/Google在上周开源了一个响应式框架——agera,相信它会慢慢地被广大程序员所熟知。我个人对这样的技术是很感兴趣的,在这之前也研究过RxJava,所以在得知Google开源了这样的框架之后第一时间进行了学习,这里算是把学习的心得和大家分享。当然由于本人水平有限,这篇文章可能起的更多的作用是抛砖引玉,希望有更多的大神能加入到学习agera的大部转载 2016-04-26 16:04:49 · 1383 阅读 · 0 评论 -
APK瘦身实践
因为推广的需要,公司需要把APK的大小再“减小”一下,4M以内!当达到4M以内之后,公司建议说,能否再压压?2M如何?瘦身前因为平时就考虑到大小的限制,所以很多工作已经做过了,如下列举现在的状态:7.3M(Debug版本)和6.5M(Release版本)开启minifyEnabled开启shrinkResources已经去除不相关的大型库图片和代码已经经历过粗略的一轮清理转载 2016-01-27 16:37:53 · 778 阅读 · 0 评论 -
android动画(一)Interpolator
目录[-]一:简介二:简单插值器分析 1.AccelerateInterpolator 加速插值器3. AccelerateDecelerateInterpolator 加速减速插值器4. LinearInterpolator 线性插值器5. BounceInterpolator 弹跳插值器6.AnticipateInterpolator 回荡秋千插值转载 2015-03-27 13:58:00 · 501 阅读 · 0 评论 -
Android MVP开发模式
转载请注明出处:http://blog.csdn.net/guxiao1201/article/details/40147209在开发Android应用时,相信很多同学遇到和我一样的情况,虽然项目刚开始构架时自认为MVC层级分的特别明确,但最终往往是一个Activity有好几百行代码,而且逻辑和UI显示完全混杂在一起,导致后续项目的维护成本巨大。一个偶然的机会看到有种MVP转载 2015-01-20 14:12:50 · 763 阅读 · 0 评论 -
notification初使用:震动提醒、跳转
1.首先获取系统通知管理服务,用于启动通知:NotificationManager notificationManager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE);2.构建notification:包含标消息标题、内容及图标Notification noti原创 2013-10-10 16:38:58 · 3076 阅读 · 0 评论 -
统一切换activity
在项目发现经常会进行activity切换,起初考虑在基类activity中通过自定义id实现:针对每一个activity定义一个id,然后通过id进行切换;这种方法优势在于只需通过id即可进行切换,所有传递数据的封装均在基类中,缺点是会导致基类无限制增大。经过多个版本的开发,发现传递数据还是很少的,因此想利用更加简单的方法进行基类优化 public void switchActivit原创 2013-10-08 17:00:13 · 1053 阅读 · 0 评论 -
dispatchTouchEvent,onTouchEvent与onInterceptTouchEvent
1.首先明白一个常识:View 没有onInterceptTouchEvent事件,而ViewGroup这三个事件都有,是viewgroup继承View之后才加了一个方法叫onIntercepTouchEvent。从字面意思可以看出,onInterceptTouchEvent是拦截器,用来拦截事件用的,dispatchTouchEvent是用来分发事件的,onTouchEvent是用来处理事件转载 2013-09-10 11:17:07 · 3156 阅读 · 1 评论 -
SharedPreferences监听实现UI更新
在项目中主页面采用tab实现一级页面, 并采用singletask模式,此时当在tab1页面进行数据操作时,如何更新tab2,这时使用 SharedPreferences的监听实现发现很好用。1.首先tab2的中添加监听同时初始化SharedPreferences:sp = getSharedPreferences(C.str.info, Context.MODE_PRIVATE);原创 2013-07-24 11:42:19 · 4074 阅读 · 0 评论 -
Activity启动模式详解
文章地址:http://blog.csdn.net/leiswpu/article/details/6248528在Android的联机文档中,有对Activity的简单介绍,现在通过编写代码对Activity的启动模式做一个深入的理解。 在配置文件AndroidManifest.xml中,activity元素的android:launchMode属性用来配置对应Activity的转载 2013-07-04 10:20:49 · 798 阅读 · 0 评论 -
Android 消息机制
文章来源:http://blog.csdn.net/liuhe688/article/details/6407225在分析Android消息机制之前,我们先来看一段代码:[java] view plaincopypublic class MainActivity extends Activity implement转载 2013-07-04 11:40:06 · 570 阅读 · 0 评论 -
intent跳转标识详解
文章来源:http://blog.csdn.net/berber78/article/details/7278408一. intent.setFlags()方法中的参数值含义:1.FLAG_ACTIVITY_CLEAR_TOP:例如现在的栈情况为:A B C D 。D此时通过intent跳转到B,如果这个intent添加FLAG_ACTIVITY_CLEAR_TOP标记,则栈情况变为:转载 2013-07-04 10:29:39 · 1721 阅读 · 0 评论 -
Mina使用问题总结
在android项目中,与代理服务器之间通信一般都是采用TCP,由于在项目中要实现的功能中还有心跳,需要定时与服务器进行心跳交互,另外客户端要随时准备接收来自服务器的消息,因此采用了Mina,发现Mina使用起来挺方便的,就是要注意处理丢包、粘包问题,还有就是与Android activity之间的交互问题,这个比较重要。http://www.iteye.com/topic/1109234原创 2012-08-02 19:24:37 · 828 阅读 · 0 评论 -
Android网络通信库Volley简介
1. 什么是Volley在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。这是Volley名称的由来:转载 2013-09-26 16:17:19 · 3385 阅读 · 0 评论 -
采用gzip传输时volley的使用
采用gzip传输好处不言而喻。通过volley得到响应字节流后判断是否经过gzip压缩并进行相应处理。一般常用自定义request用法:在parseNetworkResponse一般这样获取响应字符串:String json = new String( response.data, HttpHeaderParser.parseCharset(re原创 2013-09-26 15:20:01 · 6093 阅读 · 0 评论 -
android库工程封装总结
在进行项目开发中,多个yi'yo原创 2014-06-30 17:22:14 · 1526 阅读 · 0 评论 -
Android解惑 - 为什么要用Fragment.setArguments(Bundle bundle)来传递参数
转载地址:http://blog.csdn.net/tu_bingbing/article/details/24143249转载 2014-05-26 09:13:09 · 6469 阅读 · 2 评论 -
Android源码分析—带你认识不一样的AsyncTask(串并行)
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/17596225前言什么是AsyncTask,相信搞过android开发的朋友们都不陌生。AsyncTask内部封装了Thread和Handler,可以让我们在后台进行计算并且把计算的结果及时更新到UI上,而这些正是Thread+Handler所做的事情,没错,Asy转载 2014-05-25 16:25:49 · 5702 阅读 · 2 评论 -
Activity生命周期
Activity的管理采用栈的形式,每启动一个新的Activity都会压入栈顶,转载 2014-05-25 16:05:48 · 531 阅读 · 0 评论 -
ScrollView中ViewPager无法正常滑动问题
本文主要介绍如何解决ViewPager在ScrollView中滑动经常失效、无法正常滑动问题。解决方法只需要在接近水平滚动时ScrollView不处理事件而交由其子View(即这里的ViewPager)处理即可,重写ScrollView的onInterceptTouchEvent函数,如下:[java] view plaincopyp转载 2014-06-04 09:22:34 · 655 阅读 · 0 评论 -
android:descendantFocusability用法简析
开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者C转载 2014-06-04 09:10:21 · 522 阅读 · 0 评论 -
根据页面edittext的内容控制按钮可点击状态
当页面所有edittext不为空时按钮才可点击。activity实现TextWatcher接口,oncreate方法添加输入框监听ed1.addTextChangedListener(this);ed2.addTextChangedListener(this);ed3.addTextChangedListener(this); @Override public voi原创 2013-10-23 18:29:40 · 6199 阅读 · 5 评论 -
DLNA介绍(包括UPnP)
这部分的内容大多来源于网络及官方文档,按照自己的翻译理解整理所成。东西比较多,从头慢慢看还是可以懂个大概的。目录:一、DNLA的建立二、DLNA的成员三、DLNA标准的制定四、DLNA的设备五、DLNA的架构六、云时代的数字家庭(待填坑)扩展阅读I: UPnP的工作过程------------DLNA基础协议框架扩展阅读II UPnP AV(Audio/Vide转载 2013-10-27 14:51:30 · 3191 阅读 · 1 评论 -
VideoView画面残留
在小米的系统播放器中,在进行视频切换时会有画面残留。经过多次调试可以通过重绘surface完成,不过要注意重绘的时间。核心代码:getHolder().addCallback(new SurfaceHolder.Callback2() { @Override public void surfaceRedrawNeeded(SurfaceH原创 2017-07-06 14:58:40 · 2198 阅读 · 0 评论