![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习
文章平均质量分 69
WillenWu
无........................
展开
-
ios学习笔记
ActionSheet:头文件里加UIActionSheetDelegate>协议。- (IBAction)buttonPressed:(id)sender { UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Are you原创 2013-03-30 19:49:09 · 901 阅读 · 0 评论 -
MT7620A usb挂载问题解决
最近接触openwrt,主要是做MT7620A的固件定制化开发工作,使用https://github.com/qdk0901/openwrt-mt7620上的源码进行编译,感谢!遇到的一个大问题是USB的挂载问题,折腾了好长时间,把wiki里关于usb的模块看了好几遍,最后还是通过修改源码的方式解决了问题。原创 2014-04-15 17:07:13 · 5487 阅读 · 1 评论 -
设计模式之总述篇
以下是对《Head First 设计模式》中提到的OO原则和设计模式的总结。OO原则和设计模式的联系:模式可以让我们建造出具有良好OO设计质量的系统。模式被认为是历经验证的OO设计经验。OO设计原则: 1.封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起; 2.多用组合,少用继承;良好的OO设计必须具备可复用、可扩充、可维护三个特性。 3原创 2014-05-21 14:41:06 · 961 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式定义:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。简单定义:让对象能够在状态改变时被通知。OO原则:为了交互对象之间的松耦合设计而努力。以书中的WeatherStation为例:Subject.java(定义接口)package headfirst.observer.weather;pu原创 2014-05-21 16:16:30 · 844 阅读 · 0 评论 -
设计模式之策略模式
策略模式定义:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。简单定义:封装可以互换的行为,并使用委托来决定要使用哪一个。OO原则:封装变化多用组合,少用继续。针对接口编程,不针对实现编程。以书中的Duck为例:Duck.java(抽象类,performFly()与performQuack()函数的实现委托给行为类,行为由子类原创 2014-05-21 15:37:20 · 808 阅读 · 0 评论 -
设计模式之装饰者模式
装饰者模式定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继续更有弹性的替代方案。简单定义:包装一个对象,以提供新的行为。装饰者模式可以有效应对类爆炸问题。OO原则:对扩展开放,对修改关闭。以书中的StarbuzzCoffee为例:Beverage.java(饮料抽象类)package headfirst.decora原创 2014-05-23 09:52:54 · 935 阅读 · 0 评论 -
设计模式之单件模式
单件模式定义:确保一个类只有一个实例,并提供一个全局访问点。简单定义:确保有且只有一个对象被创建。1、单件模式最简单的实现(多线程下可能出现多个实例,非线程安全):package headfirst.singleton.classic;// NOTE: This is not thread safe!public class Singleton { p原创 2014-05-28 09:53:21 · 904 阅读 · 0 评论 -
设计模式之命令模式
命令模式定义:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销操作。简单定义:封装请求成为对象。简单例子:实现命令接口:Command.javapackage headfirst.command.simpleremote;public interface Command { public void execute()原创 2014-05-28 10:16:43 · 882 阅读 · 0 评论 -
Mobile Services批量提交数据
Mobile Services批量提交数据,参考了文章:Inserting multiple items at once in Azure Mobile Services。里面其实已经介绍得比较清楚了,但由于是英文,而且有些地方交待得不清楚,也没有Android的示例,故下文以Android版本的开发为例作个补充。首先在Mobile Services项目里新建AllToDoItems以及T原创 2014-07-22 15:08:08 · 1183 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式定义:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。简单定义:封装对象,并提供不同的接口。简单例子:鸭子接口:package headfirst.adapter.ducks;public interface Duck { public void quack(); public void fly();}具原创 2014-05-30 11:00:46 · 1119 阅读 · 0 评论 -
Android 通过samples\android-x\BluetoothChat学习蓝牙操作
最近帮别人写了一个东西需要用到蓝牙共享数据,发现Android SDK里的例子里的BluetoothChat——蓝牙聊天软件代码写得不错,就学习分析了一下。项目java文件3个:BluetoothChat:主界面,显示聊天信息BluetoothChatService:里面有3个主要线程类,AcceptThread:蓝牙服务端socket监听线程.。ConnectThread:蓝牙s转载 2014-07-15 10:41:59 · 999 阅读 · 0 评论 -
git上传文件到visualstudio online
visualstudio online免费使用,支持git,项目私有,目前来说是个人项目管理的一个不错选择。下文是简单的上传文件到visualstudio online的步骤:1、git clone https://xxx.visualstudio.com/DefaultCollection/_git/xxxProject2、cd 进入xxxProject目录3、将需要上传的文件放原创 2014-08-06 11:59:36 · 1673 阅读 · 0 评论 -
Windows Azure Mobiles Services实现客户端的登录注册
下文只是简单实现,客户端以Android端的实现为例:用户表Account:package com.microsoft.ecodrive.model;/** * @Description Account * @author t-zhiwu * @date 2014.7.22 */public class Account { @com.google.gson.annota原创 2014-08-07 16:21:52 · 1110 阅读 · 0 评论 -
Android ScrollView向上滑动控件顶部悬浮效果实现
本文参考了:《上滑停靠顶端的悬浮框》的代码,在此表示感谢。【上滑停靠顶端的悬浮框】里的实现方法是使用两个控件,滑动时,监听ScrollView的滚动Y值,从而通过对两个控件的显示隐藏来实现控件的顶部悬浮。但是实际应用场景中,有可能需要悬浮的控件里面的内容是比较多的,如果通过显示隐藏的方式来实现的话,操作控件里的内容时,需要重复定义两套变量,对控件里的内容进行修改时也是要操作再次,非常麻烦。本文的方法是通过addView和removeView来实现的。原创 2014-09-29 15:01:31 · 13280 阅读 · 3 评论 -
Android checkCallingPermission()方法返回值问题
Android开发检查权限时,发现调用checkCallingPermission()总是返回值-1,而Binder.getCallingPid() == Process.myPid()又总是返回true,百思不得其解。 网上查资料后发现,必须是在使用AIDL时在IPC(interprocess communication)方法中调用上述两个方法,才能够得到期望的值。原创 2014-11-05 18:59:19 · 6382 阅读 · 1 评论 -
替换APK文件内容后重新打包签名脚本
由于业务需求,需要替换APK文件内容后重新打包签名,调研后发现使用JDK里提供的命令可以很方便地实现。关键命令如下:jar -uf:替换apk文件内的某个文件或文件夹。jarsigner:为apk文件签名zipalign:对签名后的apk文件进行字节对齐优化下面以替换某apk包中assets目录下的1.ini和2.ini文件,并重新打包签名优化为例,先放上脚本代码:原创 2015-02-03 15:16:20 · 7279 阅读 · 0 评论 -
【九度-剑指Offer题目笔记】上
看完了书,准备把书中的代码全部手敲一遍,正好九度上有《剑指Offer》的专题,于是就在上面做了。(虽然个人更喜欢leetcode)。原题不贴,只贴代码及简单解释。部分题目仅从Oj的角度看是没什么意思的,必须按照题目的要求来解才有意义。虽然平时项目用的代码多是java,但a题还是喜欢用C/C++。题目1384:二维数组中的查找两种思路:书上的思路是从右上或者左下开始搜索,一次排除一行或一原创 2014-03-24 09:57:33 · 1349 阅读 · 0 评论 -
【九度-剑指Offer题目笔记】下
题目1524:复杂链表的复制思路:在每个链表结点后面复制此结点,将复制后的链表分离成两个链表即可,代码如下:#include //#include using namespace std; struct Node { int val; Node *next; Node *other; void setValue(int val){原创 2014-04-02 13:58:34 · 991 阅读 · 0 评论 -
OpenWrt 创建软件包(Creating packages)
以创建一个最简单的hello world为例。原创 2014-04-17 14:38:59 · 3116 阅读 · 0 评论 -
Android Light Sensor
下面这段话都能看懂吧~Here I am explaining you how to use Light Sensor of Android.1. Implement SensorEventListener2. Create variable for SensorManager and Sensor3. Get Object of SensorManager using syste翻译 2013-05-19 11:12:29 · 1564 阅读 · 0 评论 -
Windows 7 Ubuntu双系统安装历险记
安装参考:http://www.linuxidc.com/Linux/2012-05/59663.htm。安装过程各种问题。由于电脑之前是别人的,分区弄得特别乱,还把硬盘弄成了动态磁盘(可以任意分区,但是不支持双系统。当在window下分配的主分区超过3个的时候会提示将转换成动态磁盘,这时候最好别点确定,把没必要的分区通过diskgenius转换成逻辑分区就好,不然无法安装双系统。)。在dis原创 2013-05-10 09:31:09 · 1123 阅读 · 0 评论 -
《人人都是产品经理》笔记【一】
第一章 写给-1到3岁的产品经理 Don't make me think一书中说:Web设计“不要让用户思考”。其实生活中更需要这样。好产品能改变世界,坏产品也能,而我产身边已经有太多的坏产品了。面对一个场景,产品经理与普通用户所考虑的事情是不一样的。产品是什么?产品就是用来解决某个问题的东西。产品就是要同时解决用户的问题和公司的问题,一个都不能少。互联网、软件的产品经理原创 2013-06-12 11:01:37 · 1163 阅读 · 0 评论 -
搭建PhoneGap for Android开发环境
一、确保Android开发环境正常。二、下载PhoneGap。可到http://www.phonegapcn.com/去下载,速度快些。三、新建一个PhoneGap项目1.在eclipse中新建Android Project。2.在项目的目录下,建两个文件夹:/libs/assets/www3.进入将刚刚下载并解压的PhoneGap包里Anroid目录,我们需要的资源都原创 2013-07-01 11:27:57 · 1589 阅读 · 0 评论 -
jQuery Mobile和PhoneGap混合开发
其实二者并不影响,PhoneGap负责调用系统的接口,jQuery Mobile实现一些网页效果。PhoneGap开发请看上一篇文章,jQuery Mobile开发环境搭建如下:【请先阅读上一篇文章,这一篇文章是在上一篇的基础上进行的】一、到jquerymobile.com下载最新的ZIP File,解压得到其JavaScript, CSS和images。放到/assets/www/js目原创 2013-07-01 15:27:00 · 2290 阅读 · 0 评论 -
android动画特效之解决解决移动后闪烁现象,解决输入法弹出后位置回复原状,解决两个动画叠加
以下代码实现的效果是:BoundOpenView从居中移动到顶部,移动完后,BoundSendView从隐藏变为显示,并从面部移动BoundOpenView下方,同时透明度慢慢增加。private void BoundOpenViewAnimation() { Log.i(TAG, "BoundOpenViewAnimation"); final int top = B原创 2013-07-19 17:44:29 · 3460 阅读 · 0 评论 -
Android悬浮窗自由移动实现
网上很多这方面的文章,但总有诸多问题。主要有:一、悬浮窗移动手指离开后,再次移动时,悬浮窗自动回到初始位置开始移动。二、悬浮窗总是不肯老实地呆在手机边,手指点上去时会有一些不正常的位移。三、把状态栏的高度默认了25。【不同分辨率的状态栏会一样高吗?】 项目中要用到这个功能,自己研究了一些,贴出关键功能代码。其他代码请自行问谷歌。悬浮窗初始化及监听Touch事件。wm = (Wi原创 2013-09-10 09:24:57 · 3437 阅读 · 0 评论 -
Python调用飞信接口发送短信
主要参考了两篇文章:(对原作者表示感谢~)发送飞信的Python脚本:http://www.cnblogs.com/fatway/archive/2009/08/07/1693813.html中国移动飞信发送接口(Fetion API):http://blog.quanhz.com/archives/2732013年9月18日亲测可用。下面是代码:【使用前将账号密码换为自己原创 2013-09-18 09:53:13 · 5304 阅读 · 0 评论 -
二维码扫描(横屏、竖屏、解决竖屏后拉伸问题、美化扫描框)
以前上传过一个源码:Android二维码扫描简单源码是根据zxing的源码进行简化的,不过只支持横屏。其实支持竖屏的挺简单的:Step 1: Add following lines to rotate data before buildLuminanceSource(..) in decode(byte[] data, int width, int height)D原创 2013-09-28 11:35:06 · 3641 阅读 · 0 评论 -
AsyncTask并行执行
使用AsyncTask时发现一个奇怪的现象,即创建多个任务的时候,他是一个一个按顺序执行的,查资料之后发现:在1.5中初始引入的时候, AsyncTask 执行( AsyncTask.execute() )起来是顺序的,当同时执行多个 AsyncTask的时候,他们会按照顺序一个一个执行。前面一个执行完才会执行后面一个。这样当同时执行多个比较耗时的任务的时候 可能不是您期望的结果,具体情况就像原创 2013-09-28 14:23:46 · 2714 阅读 · 1 评论 -
Android GridView显示一行,左右滑动
最近项目需要用到这个功能,研究了一下,实现过程如下:gridViewAdapter = new GridViewAdapter(mContext, list1); ViewGroup.LayoutParams params = gridview.getLayoutParams(); params.width = DensityUtil.dip2px(mContext, 101原创 2013-10-24 09:41:05 · 5592 阅读 · 0 评论 -
高德地图设置中心点和缩放比例,获取两点之间距离
设置中心点和缩放比例:/** * 监听amap地图加载成功事件回调 */ @Override public void onMapLoaded() { // 设置所有maker显示在View中 LatLngBounds bounds = new LatLngBounds.Builder() .include(marker1).build(); //设置中心点和原创 2013-10-30 15:23:11 · 10031 阅读 · 1 评论 -
Android-Universal-Image-Loader关闭Log
使用Android-Universal-Image-Loader加载图片确实很方便,但是经常会弹出来一屏的红色Log,影响其他代码的调试。看了一下源码,其Log都是在类com.nostra13.universalimageloader.utils.L中打印的,而且里面定义了两个public static 方法,分别是:disableLogging()和enableLogging(),调用这两个类就原创 2013-11-10 15:14:59 · 4995 阅读 · 2 评论 -
【Android程序的反破解技术】笔记
逆向Android软件的步骤:首先是对其进行反编译,然后阅读反汇编代码,如果有必要还会对其进行动态调试,找到突破口后注入或直接修改反汇编代码,最后重新编译软件进行测试。整个过程可分为反编译、静态分析、动态调试、重编译等4个环节。反破解技术也是从这四个方面进行的。一、对抗反编译工具(如ApkTool、BackSmali、dex2jar),使其无法进行反编译,或者反编译后无法得到软件正确的反汇编代原创 2013-06-18 11:27:12 · 4491 阅读 · 1 评论 -
Android网络抓包
一、抓包:直接使用Android移植版的tcpdump工具,该工具在Android模拟器的/system/bin目录下,源码位于Android系统源码的external\tcpdump目录。执行以下命令开始抓包:adb shell tcpdump -p -vv -s 0 -w /sdcard/capture.pcap抓包的数据将保存在/sdcard/capture.pcap。按ct原创 2013-06-17 11:01:36 · 1847 阅读 · 0 评论 -
android opengl es 2.0 draw circle
Android Opengl es 2.0 画圆,网上说原理的文章挺多的,但要么是1.0的实现,要么无法跑起来。发现一个可以跑起来的方案:http://www.java2s.com/Open-Source/Android_Free_Code/OpenGL/Shape/mkabatek_androidOpenGLShapes.htm。在此记录一下。原创 2017-04-19 17:02:24 · 1563 阅读 · 1 评论