- 博客(34)
- 资源 (7)
- 收藏
- 关注
原创 观察者模式巩固学习
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式又叫发布-订阅(Publish/Subscribe)模式。 总体步骤: 1.定义观察者接口 2.定义主题接口 3.实例化主题对象 4.主题对象添加观察者 5.主题变化后,调用其
2016-05-20 16:06:25
650
原创 PullToRefresh之代理模式-LoadingLayoutProxy源码剖析
Android平台PullToRefresh开源项目,被很多app使用,其重要性不言而喻了。下拉刷新,其主要思路是,定义一个LinearLayout,自定义view中,控制好touch事件以及需要灵活使用scrollTo函数,让控件进行平滑的滚动,实现平滑的动画效果。本篇博客,主要介绍 LoadingLayoutProxy 类的使用,对该项目中,使用到的proxy设计模式,进行剖析。
2016-03-28 17:12:51
1550
原创 手动修改Sublime Text2 左边栏Sidebar的样式
电脑换了21.5寸屏之后,Sublime Text2 左侧边栏Sidebar就变小了,网上找了好几篇博客,说的是修改文件:Default.sublime-theme,但一直都没有发现对应的路径,经过仔细过滤,该文件在:Sublime Text 2\Data\Packages\Theme - Default 路径下,找到Default.sublime-theme文件,在 "class":
2015-09-15 23:12:51
3579
原创 搭建gerrit服务器(apache&nginx反向代理方式)
这段时间,想搭建一个gerrit,用于代码托管,gerrit的搭建,网上有很多种教程,但是自己按照别人的教程逐步操作,一直出现诸多问题。最头痛的就是:Configuration ErrorCheck the HTTP server's authentication settings. 后来经过他人指点,才知道自己的原因。由于对Apache的反向代理的机制,没有清楚
2015-09-04 23:50:13
8321
原创 Servlet入门时候的坑
1.在Eclipse中创建Dynamic Web Project.2.一路next,在“Configure web module settings.”中勾选Generate web.xml deployment descriptor选项,在WebContent/WEB-INF目录中,生成web.xml3.随便拷贝一个index.htm文件,放在WebContent,作为welcome-fi
2015-09-04 23:01:37
638
原创 Ubuntu 设置Java环境变量
在Ubuntu上创建子账户后,由于root登录时,已经设置好了java环境变量。当创建子账户时,相应的环境变量却没有一起携带过来?貌似有命令,创建子账户时,将root账号的环境变量一起携带过来。 那就先设置子账户的Java环境变量吧!命令如下: 步骤1:sudo vi ~/.bashrc 步骤2:export JAVA_HOME=/usr/lib/jvm/jdk1.
2015-09-02 22:05:11
1123
原创 Android瀑布流StaggeredGridView学习研究
关于Android瀑布流控件,已经在江湖上,流传已久,超过两年时间了。网上也有很多相关学习资源,可以拿来研究学习。github上,就有两个资源,可以供学习者膜拜。1.https://github.com/maurycyw/StaggeredGridView 此链接有图片加载功能,但功能相对简单些。2.https://github.com/etsy/AndroidStaggeredGr
2014-12-04 17:07:54
17640
2
原创 android平台中,EventBus研究学习
当一个Android应用功能越来越多的时候,app中各个部分之间通信,往往采用Observer的方式来进行,即注册----通知----注销的方式执行 各类控件经常需要根据某个状态来更新显示内容。这种场景常见的解决方式就是定义一个接口,需要关注该事件的控件来实现这个接口。 接口类: public interface OnChangedListener { void on
2014-11-14 16:52:53
1919
原创 AlarmManager实现精准定时任务
在项目中,有这么一个功能点,app进程中,需要实现一个定时任务,只要设备处于开机状态,每隔半个小时,就需要定时向服务器上传一次位置信息,并且只要是有网络和获取到GPS信号,进程不能死,如果进程死掉了,需要自动重启
2014-11-03 22:01:46
27745
3
原创 import 语句的模块顺序
核心风格: import 语句的模块顺序 我们推荐所有的模块在 Python 模块的开头部分导入。 而且最好按照这样的顺序:1.Python 标准库模块2. Python 第三方模块3. 应用程序自定义模块 然后使用一个空行分割这三类模块的导入语句。 这将确保模块使用固定的习惯导入, 有助于减少每个模块需要的 import 语句数目。 解释器执
2014-08-12 15:45:30
3068
转载 Python模块结构和布局
用模块来合理组织你的Python代码是简单又自然的方法。你应该建立一种统一且容易阅读的结构,并将它应用到每一个文件中去。下面就是一种非常合理的布局: (1) 起始行(Unix) (2) 模块文档 (3) 模块导入 (4) 变量定义 (5) 类定义 (6) 函数定义 (7) 主程序下图是一个典型模块的内部结构图解。(1) 起始行通常只有在类Unix 环境下
2014-08-12 09:57:35
2893
原创 小米3系统计算器自定义开关控件-MySwitchView
1.前言 在android4.0以后,有switch控件,类似于iPhone上面滑块的效果,但是只能用在4.0以后的系统中,之前的平台,就无法使用 这种控件。近段时间,看到了小米3手机上自带的计算器app,有这样的效果,上面的一个控件,觉得很漂亮,并且与iPhone上的效果略有不同,于是自己动手编写了一下这个功能,最好在编写的工程中,参考过网上的一些demo,运行后,在控件滑动的时
2014-05-30 11:14:25
6389
原创 Android launchMode 笔记---taskAffinity属性和Intent标记体会
launchmode的四种模式,不需要细说:standard、singleTop、singleTask、singleInstance。 此博客关注的是,关于Activity中关于Affinity(亲和力)&Intent标记的东西,即使是Android老鸟,也不一定将其中的细节理解透彻。
2014-05-14 15:21:25
2843
转载 PyCharm常用快捷键
Alt+Enter 自动添加包Ctrl+t SVN更新Ctrl+k SVN提交Ctrl + / 注释(取消注释)选择的行Ctrl+Shift+F 高级查找Ctrl+Enter 补全Shift + Enter 开始新行TAB Shift+TAB 缩进/取消缩进所选择的行Ctrl + Alt + I 自动缩进行Ctrl + Y 删除当前插入符所在的行Ctrl +
2014-04-30 15:08:03
2468
转载 Android下获取状态栏的高度
Android平台中获取状态栏的高度代码实现 /** * * @param activity * @return > 0 success; <= 0 fail */ public int getStatusHeight(Activity activity){ int statusHeight = 0;
2013-03-26 11:32:51
4488
原创 JNI实例2---扫描SD卡中mp3文件,native层调用Java自定义的类
此博客是在研究完《Android内核剖析》中2.2章节JNI调用机制后,才完成的。在此非常感谢该书的作者。此书的内容较多,讲述的知识点也比较深入,值得各位Android coder们学习。在Android应用开发时,有时候为了提升程序的效率,需要使用到JNI编程,调用native C代码,协作完成应用的某些功能。
2013-02-19 22:27:09
2529
原创 JNI实例3---扫描SD卡中mp3文件,native层调用Java自定义的类
现将native函数贴出来。#include #include #include #include #include #include #include #include #include #include #include //#include #define LOG_TAG "SCANER"#define LOGI(...) __android_l
2013-02-19 22:26:19
3892
转载 android JNI编程技巧
本篇将介绍在JNI编程中如何传递参数和返回值。 首先要强调的是,native方法不但可以传递Java的基本类型做参数,还可以传递更复杂的类型,比如String,数组,甚至自定义的类。这一切都可以在jni.h中找到答案。 1. Java基本类型的传递 用过Java的人都知道,Java中的基本类型包括boolean,byte,char,short,
2013-02-19 15:42:15
1161
原创 JNI实例1---扫描SD卡中mp3文件
最近在研究JNI编程,顺便实现了一个小demo,使用native递归的方法,遍历手机sd卡目录的mp3文件,在JNI层,输出MP3文件的绝对路径。在执行效率上,与Java实现方式进行比对,确实native层的C代码明显好很多。 此demo比较简单,复杂之处在于C函数的实现。由于长期从事Java开发,导致C语言的东西都遗忘不少。
2013-02-19 11:09:21
6084
原创 FFMPEG 在Android 2.3上运行的问题,求救哈!
最近准备研究一下Android平台上的ffmpeg,先实现一个音乐播放器。虽说有Andless开源项目,但是依旧想学习ffmpeg。使用NDK-r8编译,花了大约20来分钟,就生成了相应的.so文件,无奈该apk在2.3系统的手机上运行时,出现了如下错误,花了几天时间找寻答案,无果....01-19 00:07:55.073: D/dalvikvm(3118): GC_EXTERNAL_ALL
2013-01-19 00:05:40
3477
原创 Android事件分发onInterceptTouchEvent与onTouchEvent
最近在做一个项目,需要定制一个View,类似于Launcher中水平滚动效果。当初仿照Workspace类来实现。然而在针对一个子View响应Scroll事件时,这个子View死活都不响应触摸事件。分析了一天,最后给这个子View的属性中添加android:clickable="true", 问题就被搞定了。 Android平台事件分发的两个函数onInterceptTouchEv
2012-12-19 22:51:41
4670
转载 bindService和startService混合使用
Android平台,音乐播放器常常使用Service机制,并且采取bindService和startService混合使用。1.如果先startService,再bindService:在bind的Activity退出的时候,Service会执行unBind方法而不执行其onDestory方法,因为有startService方法调用过,所以Activity与Service解除绑定后会有
2012-12-11 21:40:28
2501
原创 Java 中文编码
标准的Unicode称为UTF-16(UTF:UCSTransformation Format ),后来为了双字节的Unicode能够在现存的处理单字节的系统上正确传输,出现了UTF-8。UTF-8, 8bit编码, ASCII不作变换, 其他字符做变长编码, 每个字符1-3 byte. 其中英文字母用一个字节表示,中文使用三个字节。java默认采用unicode编码,2个字节(16位)来表示
2012-09-20 21:15:20
970
转载 android:Error inflating fragment from layout androidsupportv4
android:Error inflating fragment from layout androidsupportv4在3.0之前写fragment是要引进extras/android/compatibility/v4/android-support-v4.jar包并且要注意,实现的Activity必须是继承:FragmentActivity。(这个事必须的哦!)而3.0不需要
2012-09-04 21:36:19
1848
原创 Android平台Looper、Handler机制讲解
Android平台中线程通讯的方式是采用Looper和Handler来实现的。与Window是和IOS平台一样,Android系统中同样存在消息机制----即消息队列和消息循环。 一个应用中,主线程(UI线程)默认有自己的消息队列,这个Google已经封转完好,用户可以很好的进行使用。子线程默认情况下是没有消息循环机制的,要实现这种机制也是很容易的。 class Lo
2012-08-28 10:33:41
1065
原创 Android中onMesure研究(2)
接着对上篇文章进行谈论。Android中onMesure研究(1) 。上一篇文章介绍,每一个View在显示的时候,对onMeasure方法的调用,是从最里层的View开始measure。从数据结构上讲述,是对二叉树最外层的儿子(View)开始measure。上篇博文提到是因为递归调用。 在一个Activity中,调用SetContentView后,最终就会触发ViewRoot中的sc
2012-08-21 16:44:58
2702
原创 Android中onMesure研究(1)
当一个Activity取得焦点后就会向Android系统请求绘制它的布局。Android框架会处理这个绘制的过程,一个View的显示,需要先后调用onMeasure,onLayout和onDraw方法。从字面意思理解onMeasure,为计算,测量。上图所示,A,B,C分别表示为三个View,其中,A View包含B View,B View 又包含C View。这三个View在屏幕上显示出来, 会
2012-08-20 21:36:21
4716
转载 Android中隐式Intent的用途(2) -- 实用案例
在这里可以参考Android Sample中自带的Notepad程序。当然也有网友早就对这个例子进行过讲解。可以参考http://www.cyqdata.com/android/article-detail-37654。 当自己创建日志后,在NotesList中会显示出来。当点击这个ListView中的某一个item时,响应的代码为: @Override
2012-08-18 21:16:11
1957
原创 Android中隐式Intent的用途(1) -- 基础知识
Android中隐式Intent的用途 -- 基础知识 对于明确指出了目标组件名称的Intent,我们称之为“显式Intent”。对于没有明确指出目标组件名称的Intent,则称之为“隐式Intent”。Android系统使用Intent Filter 来寻找与隐式Intent相关的对象. 隐式Intent往往用于不同应用程序之间的使用。由于开发人员往往并不清
2012-08-17 21:52:45
4148
原创 新年计划
2012年了。传说中的那个啥可能要来了。在这一年,希望自己在技术上要有大的飞跃。1.Android UI的开发,要有大的提升。Launcher和一些开源的项目是一个好的突破口。2.从市面上收集一些好的app,多把玩一下,学习人家的精髓。多考虑一下比较绚丽功能的实现方法。3.Google大神的官方文档。其实Google的官方文档有很多比较重要的文章,可以仔细认真看一下。尤其是哪个“Res
2012-01-26 14:33:08
684
原创 Android动画研究(一)
Android 动画目前,市面上的一些 UI界面做得比较花哨的Android应用,无不使用动画的方式,而动画这个基本功能,也是非常重要的。在Android平台上,动画是针对View的。创建动画的一般流程1.创建一个Animation,Animation a = new TranslateAnimation(float fromXDelta, float toXDelta, float
2012-01-15 15:50:04
849
AlarmManager实现精准定时任务
2014-11-03
小米3计算器滑动控件源码
2014-05-30
JNI实例3---扫描SD卡中mp3文件,native函数中使用自定义的类
2013-02-19
FFMPEG架构分析
2013-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人