- 博客(72)
- 资源 (47)
- 收藏
- 关注
原创 编译facebook/android-jsc时NDK找不到问题解决
编译android-jsc时提示错误:BUILD FAILED: Unrecognized flavor in target //jsc:jscoffsetextractor#android-armv7,static while parsing //jsc/BUCKHere are some things you can try to get the following flavors to
2017-08-01 17:34:08
1039
1
原创 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
1624
原创 Android Studio library R.java生成失败解决
今天在Android Studio里面创建library,library里有引用到一些资源,但是发现R一直引用不了。查看了下,build\generated\source\r\debug目录里面的R.java文件一直没有生成。谷歌许久,没有找到答案。最后自己找到了解决方案:菜单build->Make Module “yourLibrary”,然后发现R.java生成了,资源文件就可以引用了。
2016-02-17 17:33:07
12637
1
原创 替换APK文件内容后重新打包签名脚本
由于业务需求,需要替换APK文件内容后重新打包签名,调研后发现使用JDK里提供的命令可以很方便地实现。关键命令如下:jar -uf:替换apk文件内的某个文件或文件夹。jarsigner:为apk文件签名zipalign:对签名后的apk文件进行字节对齐优化下面以替换某apk包中assets目录下的1.ini和2.ini文件,并重新打包签名优化为例,先放上脚本代码:
2015-02-03 15:16:20
7343
原创 Android checkCallingPermission()方法返回值问题
Android开发检查权限时,发现调用checkCallingPermission()总是返回值-1,而Binder.getCallingPid() == Process.myPid()又总是返回true,百思不得其解。 网上查资料后发现,必须是在使用AIDL时在IPC(interprocess communication)方法中调用上述两个方法,才能够得到期望的值。
2014-11-05 18:59:19
6458
原创 Android ScrollView向上滑动控件顶部悬浮效果实现
本文参考了:《上滑停靠顶端的悬浮框》的代码,在此表示感谢。【上滑停靠顶端的悬浮框】里的实现方法是使用两个控件,滑动时,监听ScrollView的滚动Y值,从而通过对两个控件的显示隐藏来实现控件的顶部悬浮。但是实际应用场景中,有可能需要悬浮的控件里面的内容是比较多的,如果通过显示隐藏的方式来实现的话,操作控件里的内容时,需要重复定义两套变量,对控件里的内容进行修改时也是要操作再次,非常麻烦。本文的方法是通过addView和removeView来实现的。
2014-09-29 15:01:31
13380
原创 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
1149
原创 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
1713
原创 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
1224
转载 Android 通过samples\android-x\BluetoothChat学习蓝牙操作
最近帮别人写了一个东西需要用到蓝牙共享数据,发现Android SDK里的例子里的BluetoothChat——蓝牙聊天软件代码写得不错,就学习分析了一下。项目java文件3个:BluetoothChat:主界面,显示聊天信息BluetoothChatService:里面有3个主要线程类,AcceptThread:蓝牙服务端socket监听线程.。ConnectThread:蓝牙s
2014-07-15 10:41:59
1051
转载 Android软件安全开发实践
过去两年,研究人员已发现Android上的流行软件普遍存在安全缺陷或安全漏洞。漏洞频发的原因可能有很多,例如以下几种。与一切都是集中管理的iOS相比,Android提供了一种开放的环境,在获得了灵活性、可以满足各种定制需求的同时,也损失了部分安全性。开发团队通常将精力集中在产品设计、功能实现、用户体验和系统效率等方面,而很少考虑安全问题。Androi
2014-07-02 11:45:14
1307
原创 设计模式之适配器模式
适配器模式定义:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。简单定义:封装对象,并提供不同的接口。简单例子:鸭子接口:package headfirst.adapter.ducks;public interface Duck { public void quack(); public void fly();}具
2014-05-30 11:00:46
1150
原创 设计模式之命令模式
命令模式定义:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销操作。简单定义:封装请求成为对象。简单例子:实现命令接口:Command.javapackage headfirst.command.simpleremote;public interface Command { public void execute()
2014-05-28 10:16:43
913
原创 设计模式之单件模式
单件模式定义:确保一个类只有一个实例,并提供一个全局访问点。简单定义:确保有且只有一个对象被创建。1、单件模式最简单的实现(多线程下可能出现多个实例,非线程安全):package headfirst.singleton.classic;// NOTE: This is not thread safe!public class Singleton { p
2014-05-28 09:53:21
934
原创 设计模式之工厂模式
本章分三部分:简单工厂,工厂方法模式,抽象工厂模式。一、简单工厂:简单工厂其实不是一个设计模式,只是一种编程习惯。示例如下:PizzaStore.javapackage headfirst.factory.pizzas;public class PizzaStore { SimplePizzaFactory factory; public PizzaStore(
2014-05-23 10:44:23
1064
原创 设计模式之装饰者模式
装饰者模式定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继续更有弹性的替代方案。简单定义:包装一个对象,以提供新的行为。装饰者模式可以有效应对类爆炸问题。OO原则:对扩展开放,对修改关闭。以书中的StarbuzzCoffee为例:Beverage.java(饮料抽象类)package headfirst.decora
2014-05-23 09:52:54
968
原创 设计模式之观察者模式
观察者模式定义:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。简单定义:让对象能够在状态改变时被通知。OO原则:为了交互对象之间的松耦合设计而努力。以书中的WeatherStation为例:Subject.java(定义接口)package headfirst.observer.weather;pu
2014-05-21 16:16:30
878
原创 设计模式之策略模式
策略模式定义:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。简单定义:封装可以互换的行为,并使用委托来决定要使用哪一个。OO原则:封装变化多用组合,少用继续。针对接口编程,不针对实现编程。以书中的Duck为例:Duck.java(抽象类,performFly()与performQuack()函数的实现委托给行为类,行为由子类
2014-05-21 15:37:20
835
原创 设计模式之总述篇
以下是对《Head First 设计模式》中提到的OO原则和设计模式的总结。OO原则和设计模式的联系:模式可以让我们建造出具有良好OO设计质量的系统。模式被认为是历经验证的OO设计经验。OO设计原则: 1.封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起; 2.多用组合,少用继承;良好的OO设计必须具备可复用、可扩充、可维护三个特性。 3
2014-05-21 14:41:06
993
原创 MT7620A usb挂载问题解决
最近接触openwrt,主要是做MT7620A的固件定制化开发工作,使用https://github.com/qdk0901/openwrt-mt7620上的源码进行编译,感谢!遇到的一个大问题是USB的挂载问题,折腾了好长时间,把wiki里关于usb的模块看了好几遍,最后还是通过修改源码的方式解决了问题。
2014-04-15 17:07:13
5635
1
原创 【九度-剑指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
1022
原创 【九度-剑指Offer题目笔记】上
看完了书,准备把书中的代码全部手敲一遍,正好九度上有《剑指Offer》的专题,于是就在上面做了。(虽然个人更喜欢leetcode)。原题不贴,只贴代码及简单解释。部分题目仅从Oj的角度看是没什么意思的,必须按照题目的要求来解才有意义。虽然平时项目用的代码多是java,但a题还是喜欢用C/C++。题目1384:二维数组中的查找两种思路:书上的思路是从右上或者左下开始搜索,一次排除一行或一
2014-03-24 09:57:33
1381
转载 编译个性化的OPENWRT固件(openWRT源码修改)
当学会了搭建openwrt编译环境,肯定是想编译有一些自己想要的东西固件,要知道官方给的固件是很简洁的,不仅没有web界面(Luci-web),连无线默认都不是开启的,这也太不像个无线路由器的样子了。我们会使用make kernelconfig和make menuconfig这种方法来自定义软件包,不过,这样编译出来的固件仍然不具个性化,因为,无线仍然没有开启,像SSID、路由主机名、默认
2014-03-11 10:41:06
6507
原创 CentOS6.5安装nginx1.5.8时出现“cp: "conf/koi-win" 与"/usr/local/nginx/conf/koi-win" 为同一文件”的解决方法
安装方法主要参考了:http://www.cnblogs.com/zhoulf/archive/2013/02/09/2909653.html这篇文章,出现“cp: "conf/koi-win" 与"/usr/local/nginx/conf/koi-win" 问题的时候参考了http://my.oschina.net/websec/blog/178133这篇文章,但照做会出现另一个问题。说是co
2014-01-11 21:25:26
4724
2
原创 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
5032
原创 高德地图设置中心点和缩放比例,获取两点之间距离
设置中心点和缩放比例:/** * 监听amap地图加载成功事件回调 */ @Override public void onMapLoaded() { // 设置所有maker显示在View中 LatLngBounds bounds = new LatLngBounds.Builder() .include(marker1).build(); //设置中心点和
2013-10-30 15:23:11
10156
原创 Android GridView显示一行,左右滑动
最近项目需要用到这个功能,研究了一下,实现过程如下:gridViewAdapter = new GridViewAdapter(mContext, list1); ViewGroup.LayoutParams params = gridview.getLayoutParams(); params.width = DensityUtil.dip2px(mContext, 101
2013-10-24 09:41:05
5660
原创 AsyncTask并行执行
使用AsyncTask时发现一个奇怪的现象,即创建多个任务的时候,他是一个一个按顺序执行的,查资料之后发现:在1.5中初始引入的时候, AsyncTask 执行( AsyncTask.execute() )起来是顺序的,当同时执行多个 AsyncTask的时候,他们会按照顺序一个一个执行。前面一个执行完才会执行后面一个。这样当同时执行多个比较耗时的任务的时候 可能不是您期望的结果,具体情况就像
2013-09-28 14:23:46
2745
原创 二维码扫描(横屏、竖屏、解决竖屏后拉伸问题、美化扫描框)
以前上传过一个源码: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
3719
原创 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
5333
原创 Android悬浮窗自由移动实现
网上很多这方面的文章,但总有诸多问题。主要有:一、悬浮窗移动手指离开后,再次移动时,悬浮窗自动回到初始位置开始移动。二、悬浮窗总是不肯老实地呆在手机边,手指点上去时会有一些不正常的位移。三、把状态栏的高度默认了25。【不同分辨率的状态栏会一样高吗?】 项目中要用到这个功能,自己研究了一些,贴出关键功能代码。其他代码请自行问谷歌。悬浮窗初始化及监听Touch事件。wm = (Wi
2013-09-10 09:24:57
3505
转载 Android 应用性能调试
Performance Debugging of Android* Applications [Android* 应用性能调试]:http://software.intel.com/zh-cn/articles/performance-debugging-of-android-applications/?cid=sw:prccsdn2072如何编写高效的Android代码:ht
2013-08-26 12:50:16
878
原创 android动画特效之解决解决移动后闪烁现象,解决输入法弹出后位置回复原状,解决两个动画叠加
以下代码实现的效果是:BoundOpenView从居中移动到顶部,移动完后,BoundSendView从隐藏变为显示,并从面部移动BoundOpenView下方,同时透明度慢慢增加。private void BoundOpenViewAnimation() { Log.i(TAG, "BoundOpenViewAnimation"); final int top = B
2013-07-19 17:44:29
3516
原创 android程序接通和挂断电话
关键代码:【PhoneUtils类】package com.ebupt.phonerecorddemo.server;import java.lang.reflect.Method;import android.content.Context;import android.content.Intent;import android.telephony.TelephonyManager
2013-07-11 12:43:50
2239
原创 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
2318
原创 搭建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
1617
原创 【Android程序的反破解技术】笔记
逆向Android软件的步骤:首先是对其进行反编译,然后阅读反汇编代码,如果有必要还会对其进行动态调试,找到突破口后注入或直接修改反汇编代码,最后重新编译软件进行测试。整个过程可分为反编译、静态分析、动态调试、重编译等4个环节。反破解技术也是从这四个方面进行的。一、对抗反编译工具(如ApkTool、BackSmali、dex2jar),使其无法进行反编译,或者反编译后无法得到软件正确的反汇编代
2013-06-18 11:27:12
4565
原创 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
1883
原创 ProtoBuf for java使用笔记
一、下载:protoc-2.5.0-win32.zip。解压到得protoc.exe。二、下载:protobuf-java-2.5.0.jar。三、新建项目ProtobufDemo。包名:com.protobufdemo.protobuf。四、把上面的jar包跟exe放到工程目录下。新建文件夹:proto。在其下新建文件:msg.proto,内容如下:option java_p
2013-06-14 16:50:26
2594
Android反编译工具包
2012-08-10
MFC程序与文件关联
2012-06-07
在android中利用JAVA反射机制终止通话
2012-05-24
android JavaMail发送邮件
2011-10-12
VC绘制3D饼状图(绘制在对话框或其他指定位置)
2011-02-25
SpaceBuilder2.3SDK
2010-05-24
Android ScrollView向上滑动控件顶部悬浮效果实现
2014-09-29
SlidingMenu
2014-08-22
OpenWrt 创建软件包
2014-04-17
华为USSD业务AI开发指南-doc
2013-11-14
Android database SQLCipher
2013-10-16
ProtobufDemo
2013-06-14
基于javacv的人脸检测Demo
2013-05-31
android上实现speex编解码
2013-05-06
Objective-c利用协议实现回调函数
2013-03-31
Mifare1卡中文资料
2013-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人