- 博客(111)
- 资源 (29)
- 收藏
- 关注

转载 Android 从入门到资深学习路线
前言看到一篇文章中提到“最近几年国内的初级Android程序员已经很多了,但是中高级的android技术人才仍然稀缺“,这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程师的确不容易,一般需要进行大量的面试才能挑选出一个比较满意的。为什么中高级Android程序员不多呢?这是一个问题,我不好回答,但是我想写一篇文章来描述下Android的学习路线,期望可以帮助更多的Android程序员提升自己。由于我也是从一个菜鸟过来的,所以我会结合我的个人经历以及我对Android学习过程
2017-07-03 14:32:44
864

原创 android吹一吹功能的实现,利用麦克风去监听频率的变化。
android吹一吹功能的实现,主要是通过监听麦克风频率变化来实现的,源码下载地址: 主要是通过一个线程去监听麦克风的变化来确定吹一吹的功能接下来看下主要代码:RecordThread.javapackage com.li;import android.media.AudioFormat;import android.media.AudioRecord;import andr
2013-10-23 16:02:27
4833

转载 Android手机的声波通信源代码
最近一年在Android手机中出现了大量的比较优秀的用声波握手通信的应用程序,比如茄子快传,支付宝声波支付,还有小米的声波握手传输等。其基本思路都是首先建立wifi热点,然后用声波通信的方法将wifi热点name和password传输给对方,最后对方收到name和密码后自动链接wifi热点并传输各种大文件。该技术的主要难点在于声波通信,下面是我最近写的声波通信程序,源代码下载地址:http://w
2013-10-23 15:17:53
3346
1
原创 Java设计模式之责任链模式
责任链模式模式介绍模式的定义一个请求沿着一条“链”传递,直到该“链”上的某个处理者处理它为止。模式的使用场景一个请求可以被多个处理者处理或处理者未明确指定时。
2017-02-15 16:14:07
377
原创 Java设计模式之原型模式
原型模式模式介绍模式的定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。模式的使用场景类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝避免这些消耗;通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式;一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性拷贝。
2017-02-15 16:13:28
415
原创 Java设计模式之外观模式
外观模式定义为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式的目的不是给子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散耦合,从而让外部能够更简单的使用子系统。优缺点优点 松散耦合简单易用更好的划分访问的层次缺点 过多的或者是不太合理的Facade也容易让人迷惑。到底是调用Facade好还是直
2017-02-15 16:13:13
319
原创 Java设计模式之适配器模式
适配器模式定义: 将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。功能: 进行转换匹配,目的是复用已有的功能,而不是来实现新的接口。在适配器里实现功能,这种适配器称为智能适配器。优点:更好的复用性更好的扩展性缺点:过多的使用适配器,会让系统非常零乱,不容易整体进行把握。本质:转换匹配,复用功能。何时选用适配器模式:
2017-02-15 16:12:59
315
原创 Java设计模式之简单工厂
简单工厂接口接口是一种特殊的抽象类,跟一般的抽象类相比,接口里的所有方法都是抽象方法,接口里的所有属性都是常量。也就是说接口里面只有方法定义没有任何方法实现。接口的思想是”封装隔离”简单工厂示例代码: https://github.com/GeniusVJR/DesignMode_Java/tree/master/SimpleFactory客户端在调用的时候,不但知道了接口,同时还知道了具体的实现
2017-02-15 16:12:45
311
原创 Java设计模式之观察者模式
观察者模式首先在Android中,我们往ListView添加数据后,都会调用Adapter的notifyDataChanged()方法,其中使用了观察者模式。当ListView的数据发生变化时,调用Adapter的notifyDataSetChanged函数,这个函数又会调用DataSetObservable的notifyChanged函数,这个函数会调用所有观察者(AdapterDataSetOb
2017-02-15 16:12:22
286
原创 Java设计模式之代理模式
代理模式模式介绍代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。模式的使用场景就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。角色介绍抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。目标
2017-02-15 16:11:48
254
原创 常见的面向对象设计原则
常见的面向对象设计原则单一职责原则 SRP 一个类应该仅有一个引起它变化的原因。开放关闭原则 OCP 一个类应该对外扩展开放,对修改关闭。里氏替换原则 LSP 子类型能够替换掉它们的父类型。依赖倒置原则 DIP 要依赖于抽象,不要依赖于具体类,要做到依赖倒置,应该做到: 高层模块不应该依赖底层模块,二者都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。接口隔离
2017-02-15 16:11:04
236
原创 Java设计模式之策略模式
策略模式模式的定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。注:针对同一类型操作,将复杂多样的处理方式分别开来,有选择的实现各自特有的操作。模式的使用场景针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。需要安全的封装多种同一类型的操作时。出现同一抽象多个子类,而又需要使用if-else 或者 switch-
2017-02-15 16:10:41
281
原创 Java设计模式之单例模式
单例模式定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 Singleton:负责创建Singleton类自己的唯一实例,并提供一个getInstance的方法,让外部来访问这个类的唯一实例。饿汉式: private static Singleton uniqueInstance = new Singleton(); 懒汉式 private static Sin
2017-02-15 16:09:37
317
原创 Java设计模式之Builder模式
七大设计原则:1、单一职责原则【SINGLE RESPONSIBILITY PRINCIPLE】:一个类负责一项职责.2、里氏替换原则【LISKOV SUBSTITUTION PRINCIPLE】:继承与派生的规则.3、依赖倒置原则【DEPENDENCE INVERSION PRINCIPLE】:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程.4、接口隔离原则【INTERFACE SEGREGATION PRINCIPLE】
2017-02-15 15:59:41
409
原创 Eclipse如何修改包名
Eclipse开发launcher时常会遇到改名问题,改动错误或更新不完整,都会引起大量的提示错误,所以,改名前一定要备份一下原工程以备回退。一、修改源码包名1、选择launcher包2、按下F2或鼠标右键选择重命名输入新名称,下面四个CheckBox全部选中。3、点击Preview在弹出界面中,点击continue继续修改包,进入下一步确认修改界面。4、点击O
2015-05-04 11:35:26
50873
7
原创 Xcode 6制作动态及静态通用Framework(解决不支持 armv7s arm64 armv7)
有没有写SDK或者要将一些常用的工具类做成Framework的经历? 你或许自己写脚本完成了这项工作,相信也有很多的人使用 iOS-Universal-Framework ,随着Xcode 6的发布,相信小伙伴们已经都知道了,Xcode 6支持做Framework了. 同时iOS-Universal-Framework开发者也宣布不在继续维持此项目的开发,建议开发者使用Xcode 6制作,目前网上
2015-02-05 17:37:18
5160
转载 ios 制作自已的framework
ios中我们写的代码有时不愿意让别人看到,可能对它进行封装,生成一个静态库如典型的.a,还有一种就是和苹果自带的库一样的后缀名为.framework的库,个人推荐使用.framework,因为.a不仅要装其添加进去,还要将对应的头文件添加到项目中。1.新建一个静态库工程。file--new--project,弹出框中选择Ios--framework&library中的cocoa touch s
2015-01-29 14:18:11
854
原创 CocoaPods pod install/pod update更新慢的问题
使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:pod install --verbose --no-repo-updatepod update --v
2015-01-05 16:36:19
1632
原创 在ios中的Document中创建多级文件夹以及文件
- (NSString *)dataPath:(NSString *)file{ NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"badge"]; BOOL bo = [[NSFileMan
2014-07-02 22:31:40
2310
原创 IOS沙盒机制(SandBox)
分别是.app文件,这个就是可运行的应用文件,Documents,苹 果建议将程序中创建的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录;Library,存储程序的默认设置或其它 状态信息;Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除;tmp,创建和存放临时文件的地 方。下面通过代码来获取这些目录
2014-07-02 14:46:54
671
原创 Android App自动化之使用Ant编译项目多渠道打包
Ant编译项目多渠道打包,随着工程越来越复杂,项目越来越多,以及平台的迁移(我最近就迁了2回),还有各大市场的发布,自动化编译android项目的需求越来越强烈,后面如果考虑做持续集成的话,会更加强烈。 经过不断的尝试,在ubuntu环境下,以花界为例,我将一步一步演示如何使用命令行,使用ant编译android项目,打包多渠道APK。
2014-03-19 14:33:51
1186
转载 Android NDK支持STL的一些注意事项
Android NDK从r5b版本开始有官方支持的STL了,有一个crystax版本早已经支持。官方的支持有两个版本一个是gnu的,一个是stlport。如果你需要在你的NDK程序中使用STL,那么需要在Application.mk文件中添加一个选项,就是APP_STL := stlport_static。 其中APP_STL的取值有以下四种: system --> 系统默认的最小支
2014-02-18 11:04:51
785
转载 Android NDK学习(8)Android Makefile探索2 .
前面写的makefile比较简单,主要是要测试的代码结构比较简单。这次,源文件、头文件不在同一个文件夹下了,那又该如何写makefile呢?首先,我的代码目录结构如下:1、在jni主目录首先有一个MK文件,内容如下:MY_LOCAL_PATH :=$(call my-dir)LOCAL_PATH :=$(MY_LOCAL_PATH)i
2014-02-18 11:04:10
653
转载 Android NDK学习(7)NDK测试时遇到的问题:C与C++互相调用
贴代码:test.hint adds(int a,int b);int subs(int a,int b);test.c#include "test.h"int adds(int a,int b){ return (a-b);}int subs(int a,int b){ return (a+b);}com_ycan_ycantestlib.h
2014-02-18 11:02:52
604
转载 Android NDK学习(6)在Android项目中调用已有.so库
注意该.so库指的是android平台的,非一般linux、unix平台;1、现有库libcom_ycan_testLib.so2、新建android项目TestLib23、添加新类:类名:testLib包路径:参考现有库名,应为com.ycan4、在新类中声明库的本地方法,如下:package com.ycan;public class
2014-02-18 11:00:39
721
转载 Android NDK学习(5)调用.so文件
直接贴代码了:package com.YCan.testjni;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import
2014-02-18 10:58:05
673
转载 Android NDK学习(4)使用cygwin生成.so库文件
简单的示例:makefile文件:LOCAL_PATH:=$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:=test-jniLOCAL_SRC_FILES := test-jni.cinclude $(BUILD_SHARED_LIBRARY)如果有多个文件,可能有所不同吧,尚未尝试。
2014-02-18 10:56:15
886
转载 Android NDK学习(3)使用Javah命令生成JNI头文件
第一步:在Eclipse中创建android项目,并声明Native接口:public native int add (int a, int b);public native int sub (int a, int b);编译、运行;这样在bin目录下就会生成类文件;第二步:打开命令行cmd,到达bin目录:F:\fww\workspac
2014-02-18 10:55:14
813
转载 Android NDK学习(2)Windows下NDK开发环境配置
一、配置好Android开发环境 此处不再赘述。 2013年6月7日: 现在android SDK的版本已经到了4.2了,几乎不用配置,下载下来解压,SDK跟Android开发专用Eclipse都有了。喜欢。二、下载安装安卓NDK 下载最新版,解压即可。 2013年6月7日: 目前版本已经到了r8e.三、下
2014-02-18 10:53:40
744
转载 Android NDK学习(1) 简介
一、What is the NDK?The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications.Android applications run in the Dalvik virtual machine.
2014-02-18 10:48:41
683
原创 Android 实现圆形转盘菜单(CirCleMenu)
前段时间有个朋友问我圆形菜单的实现,刚开始自己也到网上找了很多相关的资料,还是觉得这个实现还不错,一起分享给大家源码地址:http://download.youkuaiyun.com/detail/hcb1230/6775905以下是基本的实现:1.CircleLayout.javapackage com.szugyi.circlemenu.view;/* * Cop
2013-12-27 10:46:28
8900
1
原创 Android的TextView与Html相结合的用法
Android中的TextView,本身就支持部分的Html格式标签。这其中包括常用的字体大小颜色设置,文本链接等。使用起来也比较方便,只需要使用Html类转换一下即可。
2013-12-12 10:00:22
1308
转载 图片处理系列三Android多点触控对图片自由缩放和移动
在上一篇文章中我带着大家一起实现了Android瀑布流照片墙的效果,虽然这种效果很炫很酷,但其实还只能算是一个半成品,因为照片墙中所有的图片都是只能看不能点的。因此本篇文章中,我们就来对这一功能进行完善,加入点击图片就能浏览大图的功能,并且在浏览大图的时候还可以通过多点触控的方式对图片进行缩放。效果如下:下载地址:http://download.csdn.n
2013-11-26 15:20:45
1353
转载 图片处理系列二Android瀑布流照片墙实现(含源码)
传统界面的布局方式总是行列分明、坐落有序的,这种布局已是司空见惯,在不知不觉中大家都已经对它产生了审美疲劳。这个时候瀑布流布局的出现,就给人带来了耳目一新的感觉,这种布局虽然看上去貌似毫无规律,但是却有一种说不上来的美感,以至于涌现出了大批的网站和应用纷纷使用这种新颖的布局来设计界面。记得我在之前已经写过一篇关于如何在Android上实现照片墙功能的文章了,但那个时候是使用的GridVie
2013-11-26 15:14:31
2641
转载 图片处理系列一Android照片墙应用实现(绝对不崩溃)
源码下载地址:照片墙这种功能现在应该算是挺常见了,在很多应用中你都可以经常看到照片墙的身影。它的设计思路其实也非常简单,用一个GridView控件当作“墙”,然后随着GridView的滚动将一张张照片贴在“墙”上,这些照片可以是手机本地中存储的,也可以是从网上下载的。制作类似于这种的功能的应用,有一个非常重要的问题需要考虑,就是图片资源何时应该释放。因为随着GridView的滚动,加载
2013-11-26 14:53:42
1721
原创 控件随ScrollView滚动到某位置会停靠的效果
之前因为项目需要做了一个效果,就是当某个操作按钮滑动顶部是固定在顶部,不让其隐藏,让用户无时无刻都可以实现这个操作。这个效果不是很神奇,就个人来说呢,很有用。无形间增加了用户体验鸟直接上图吧,效果如下:效果不错吧,哈哈一开始 中间深绿色的一条 可以随着整一块拖动。当它到达顶部的时候,能够靠着状态栏停留。往下拖动回到原来位置的时候 , 又可以向
2013-11-22 14:31:13
3732
原创 Android MediaPlayer与Http Proxy结合之优化篇
本文是在《玩转 Android MediaPlayer之视频预加载(优化)》基础上修复Http代理服务器(Http Proxy)透传的bug。前面几篇相关文章所用的代理服务器一个时间只能监听来自Mediaplayer的一个Request请求,但在实际项目开发过程中,发现有些支持m3u8格式Mediaplayer发出新的Request请求之前不会中断旧的Request请求,所以本文代码会加入多线
2013-11-13 17:21:02
1046
原创 玩转 Android MediaPlayer之视频预加载(优化)
本文是在《玩转 Android MediaPlayer之视频预加载》基础上做更进一步的优化,适应更多终端的MediaPlayer,不再唠叨预加载的作用和基础,有兴趣的读者请看上回。 MediaPlayer由厂家定制,不同终端的MediaPlayer略有差异,例如:有些MediaPlayer首次播放从头buffer,有些MdiaPlayer首次播放会多次Request,Range
2013-11-13 17:19:13
1823
图片处理系列三Android多点触控对图片自由缩放和移动
2013-11-26
图片处理系列二Android瀑布流照片墙实现(含源码)
2013-11-26
图片处理系列一Android照片墙应用实现(绝对不崩溃)
2013-11-26
Android MediaPlayer之视频预加载(优化)
2013-11-22
Android MediaPlayer之Media Proxy
2013-11-22
Android MediaPlayer与Http Proxy结合之提高篇
2013-11-22
Android MediaPlayer与Http Proxy结合之基础篇
2013-11-22
android ScrollVIew中控件滑动顶端固定
2013-11-22
Android AIDL 实现应用间数据交换(包括Parcelable数据)
2013-10-23
android声波通信
2013-10-23
android实现歌词同步和下载功能
2013-06-20
实现FaceBook左右滑动菜单,类似朋友网效果
2012-11-26
GallaryBrowser
2012-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人