自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(25)
  • 收藏
  • 关注

原创 View在Activity-onResume重绘带来的问题以及解决方案

需求分析:当客户端收到一个推送的时候,获取所有待确认的订单,并弹出一个框,框最多有3个数据,并且第二个跟第三个分别有着50%跟70%的透明度。如下图所示: 开发、编码:在github上搜索了,找到了SwipeCardView这个控件,并且稍稍修改了源码,成功实现了需求。Test阶段: 在test的时候却发现了一个bug。 当把App放至后台,目前浏览着别的程序,这时收到推送,并且弹出需求的框出

2016-09-30 15:09:32 2146

原创 标记、清除算法是如何处理循环引用?

目前的GC算法有两个大分类:引用计数与可达性。下面来说说引用计数法是如何统计所有对象的引用计数的,再对比分析可达性算法是如何解决引用技术算法的不足,好比说循环引用。循环引用 举个栗子:有两个对象,A引用B,B引用A。 这种情况下两个对象都存在引用,那么是否这两个对象就无法被GC了呢?先卖个关子,让我们记住这种情况,带着疑问往下读,接下来了解一下GC算法的一些概念。GC采用的算法 1.引用计数算

2016-09-26 11:19:07 2609

原创 ScaleBarChart-Android上快速形成柱形图

有时一些业务场景,在移动端上也要显示统计数据以及图表,端午假期尝试写了一个ScaleBarChart,现在只要根据指定的数据格式,拼接好数据即可按如下方式显示了。我们看下是如何实现的。 相关代码已经放至Github上,欢迎star & fork: https://github.com/DontesMore/ScaleBarChart一、数据模型public class BarData {

2016-06-12 14:01:22 603

原创 Android内存泄漏示例

“内存泄漏”就是一个对象已经不需要再使用了,但是因为其它的对象持有该对象的引用,导致它的内存不能被回收。“内存泄漏”的慢慢积累,最终会导致OOM的发生,导致程序崩溃闪退。本篇将总结典型的内存泄漏的代码,并给出对应的解决方案。 一、内存泄漏的类型:静态变量引起的内存泄漏非静态内部类引起的内存泄漏资源未关闭引起的内存泄漏二、静态变量引起的内存泄漏示例 单例模式引起的Context内存泄漏

2016-05-19 20:20:08 223

原创 Android监听keyboard显示、隐藏

一、需求 产品方提出了有一个界面要根据软键盘的弹出\隐藏从而去显示\隐藏一个View,但是Android SDK没有提供相关的API给我们,我们只能自己去倒腾出来,实现监听。 二、分析 1. 了解知识 在AndroidManifest.xml文件中,我们会注册我们的Activity,其中有个android:windowSoftInputMode属性,这个属性的可配置项

2016-05-19 10:36:33 732

原创 Android MVP模式

一、 定义MVP从更早的MVC框架演变过来,与MVC有一定的相似性:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。已经有了MVC,为什么还要提出MVP?在Android开发中,Activity并不是一个标准MVC模式中的Controller。按理说,Controller只需要接受用户的输入,然后与Model进行交互进行数据的更新。 这也正是问题所在。

2016-04-12 17:17:08 259

原创 Android监听自身被卸载

产品经理发下需求:产品自身被卸载后做些操作,诸如反馈弹框等。这个时候,就得研究下了。这里先说下我研究的结果:拒绝了产品经理的需求。这个也是万不得已啊,能做的尽量做, 不能做的,或者低概率能完成的,一律拒绝。关于监听卸载,我搜罗到了两种方式:1.监听其他app的卸载:http://www.cnblogs.com/stoic/archive/2012/0

2015-10-13 15:59:14 346

原创 Android序列化方式的选择

当使用对象在进程间传输数据时,我们需要对对象进行序列化,Java中提供了Serializable接口,而Android SDK提供了Parcelable接口public class User implements Serializable或者public class User implements Parcelable究竟如何选择呢?为什么Android要提供专门的序列化方式?Seri

2015-09-24 09:55:11 327

原创 Activity的四种启动模式解析

Activity作为Android的四大组件之首,的的确确有太多重要的东西了。在启动模式上,就提供了四种。1.重要性?    决定了Activity的启动方式。2.为什么?    满足项目的需求,例如性能等。3.知识点分析四种启动模式包括了standard、singleTop、singleTask、singleInstance。我们设想一个场景:多次启动同一个Activ

2015-09-17 16:24:48 615

原创 ScrollView滑动至最底部

已经不止一次碰到这个问题了,所以在这里做下记录,方便以后查询。handler.post(new Runnable() { @Override public void run() { mScrollView.fullScroll(ScrollView.FOCUS_DOWN); }});为嘛要使用handler呢?因为我们要在View完全绘制出来之后再去调用f

2015-09-06 15:59:17 448

原创 Android的点击事件分发机制

关于Android点击事件派发的资料,网上已是大把,但是自己分析总结的,显得更加深刻。Come on!首先,我们编辑一个简单的小程序上项目代码:public class MainActivity extends Activity { private final String TAG = "click"; @Override protected voi

2015-09-02 17:21:27 332

原创 问题:sqlite3:not found

今儿在使用adb shell查看手机数据库的时候出现了这个错误sqlite3:not found 倒腾了一个上午,终于解决了,这里作下记录。1.为什么出现?sqlite3 为一个可执行脚本程序,在system/xbin/下面,某些品牌手机rom 不带这个东西,例如魅族mx3,导致没有该工具。2.怎么解决?1.打开一个模拟器,在DDMS面板中的File Explo

2015-08-20 14:23:53 641

原创 观察者模式

1.定义:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。2.为什么?设想一个场景:农场有一个布告板,显示了来自远程气象台的气温,湿度等。而远程气象台的数据不定时的更新,农场的布告板当然要随之变化了。如果是一个布告板,那还好,如果10个、20个的话,那真的hold不住拉,要每个都去调整。3.怎么做?我们抽象出

2015-08-18 16:55:18 261

原创 Android的异步处理消息机制

本文主要介绍Android的异步处理消息机制知识点:1. 主线程:既要处理UI事件,又要处理后台服务等工作,忙不过来的。为了解决这个问题,就有了多线程,主线程可以通过创建多个子线程来处理后台服务、和一些耗时工作,自身一心一意处理UI事件。2. Handler和Message:大家都知道,handler主要用在子线程中发送消息通知UI线程更新UI的。线程间的通讯通过han

2015-07-22 11:00:34 263

原创 Android 跨进程通讯技术:AIDL

1.什么是AIDLIPC(Inter Process Communication)是Android为了能让进程间进行通讯而提出来的,其中AIDL(Android Interface Definition Language,Android接口定义语言)是IPC的一个轻量级的实现,编译器通过*.aidl文件生成对应的Java代码,供我们调用。2.例子2.1 需要了解的:

2015-07-20 09:54:54 284

原创 关于android的服务与一个例子

1.服务(Service)简介Android的四大组件之一,其分类还是蛮多的,生命周期也与Activity的相近,还有与Thread的区别,有人已经做了很好的总结,大家不妨看下这个blog。点击打开链接 2.例子这里介绍一种服务--通知中心通知,这种服务很常见,包括图标,标题,内容,时间这些信息,其特性是:做着自己的事儿,可供多个Activity控制。2.1 M

2015-07-14 09:32:57 223

原创 阶段总结(一)

时间2015.5-2015.7事件这两个月以来,忙着一个新的Android项目,有IM,有复杂的管理流程,有朋友圈概念,有通讯录功能,看似庞大,但是基本上只做了业务和界面这的东西,底层模块则沿用先前的一套。我在这个项目中做着业务最复杂最繁琐的一块儿,累,加了一个月班。当然,累也是有所收获的,除了技术经验上的积累,再则就是项目团队的和谐共处的方式,都是我这一段时间的财富。作为一名屌丝

2015-07-07 18:41:44 274

原创 FragmentActivity管理Fragment,实现滑动切换

今儿在项目中遇到个问题,分析了下采用Fragment解决。1.问题描述:在页面顶部有4个tab要求支持切换,以及页面滑动时tab切换。2.解决方案分析2.1 tab切换:为了让每一个tab页都有一个完整的生命周期,决定采用Fragment去编写。2.2 滑动切换:ViewPagger3.解决方法3.1 主容器task_add_activity.xml

2015-05-11 14:14:00 579

原创 Android 图片缓存(文件+缓存+网络+线程池)

今天在项目中遇到了图片缓存的问题,自己尝试写了下:1.正常的加载图片

2015-04-30 11:42:07 362

原创 eclipse修改编码区背景色+修改编码字体大小

1.修改编码区背景色Window-->Preference,选中 Text Editors,右边出现TestEditors面板。 面板中有这样一个选项:Appearance color options;其中是各种板块颜色的设置,其中有一项是background color,勾掉System Default,点击'color',弹出颜色选择面板,选择喜好的颜色,单击确定。注:背景颜色眼科

2015-04-30 10:18:39 400

原创 Android获取音频焦点,播放自己的音频

这些天在项目上遇到了些困难:在播放语音的时候遇到了第三方音频播放器的干扰。倒腾了两天,终于解决了,这里mark一下。在Android系统中,如果想自己的音频播放不被第三方干扰,例如有时出现音乐和你的语音一起播放,或者是一声音大,一声音小。这时候必须先获取音频的焦点(除了一些耍流氓的),然后才去播放你的语音,而且在播放结束后必须释放焦点。1.请求音频焦点public void

2015-04-10 10:07:07 1777

原创 Android App 引导页

今天在程序中要设置一批引导页,喊UI切了图,对应的比例如下:m:320*480h:480*800xh:720*1280xxh:1280*1920然后使用了ViewPagger去设置出这些图片但是手机类型繁多,而且“坑机”也不少。所以使用了LinearLayout + ImageView去设置ViewPagger的每个item。其中,ImageView对应的是纯色背景

2015-03-25 09:17:35 365

原创 关于Android中的反射

其实,关于反射,个人觉得在Android中的使用不是特么频繁、实用。优快云上有一个关于反射的经典例子:AlertDialog该例子是这样的:众所周知,在AlertDialog中有两个按钮,无论你点击任何一个,该dialog都会dismiss,这个有项目需求说不要dismiss的时候,该如何做到?这个时候就需要实用反射技术改变AlertDialog中的mAlert变量,自定义一个相关变

2015-03-14 18:32:17 409

原创 Java字符串拼接

如果在编写代码的过程中大量使用String的+操作进行字符串评价还是会对性能造成比较大的影响,但是使用的个数在1000以下还是可以接受的,大于10000的话,执行时间将可能超过1s,会对性能产生较大影响。如果有大量需要进行字符串拼接的操作,最好还是使用StringBuffer或StringBuilder进行。

2015-03-04 11:21:57 296

原创 Eclipse查看外部源码问题

今天想在项目当中接入Volley开源框架,想看看google大神们写的源码倒弄的过程中发现,当Volley以jar包的形式导入到项目中时(Android Private),无法进行源码查看,因而在github下了源码,并升级为library。导入项目中(Android Libraries),成功查看源码。

2015-03-03 11:35:07 298

空空如也

空空如也

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

TA关注的人

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