随笔分类 -  移动互联网

android、ios、windows mobile
关于Android实现VPN开发方案探索
摘要:手上有个Android vpn开发的需求,对这一块也没什么经验,网上找资料发现很有限,整理出来结论如下: 1【知乎】https://www.zhihu.com/question/22675356/answer/22219771 根据 http://stackoverflow.com/question 阅读全文

posted @ 2016-11-21 22:46 Brown Qin 阅读(1039) 评论(0) 推荐(0)

OC下Base64编码的中文字符编码问题
摘要:Base64是常用的编码规范之一,如网络传输中应用广泛,之前列举过base64编码的原理:《base64举例》以及java实现的base64编码工具类。这里,贴出OC下的base64代码,在平台之间通信过程中保证编码能通用——中间出现一个编码问题,google官方提供的base64Util包默认用的... 阅读全文

posted @ 2014-06-17 16:27 Brown Qin 阅读(2677) 评论(0) 推荐(0)

Android手机令牌,WEB安全之硬件绑定变向思路
摘要:【问题引出】由于公司主要是基于虚拟交易的电商业务,WEB系统一直存在帐号硬件绑定的需求,以提升系统的安全性和可靠性,防止密码盗用和木马侵入导致的财产损失。大家也知道,手机端(不管是android还是IOS)或者windows的C/S模式的系统都非常容易获取MAC地址、硬盘编号等物理信息,记录校验,也... 阅读全文

posted @ 2013-11-09 23:52 Brown Qin 阅读(661) 评论(0) 推荐(0)

Android adb端口被占用(eclipse无法找到devices)的解决办法
摘要:adb端口被占用(eclipse无法找到devices)的解决办法 阅读全文

posted @ 2013-11-05 09:51 Brown Qin 阅读(1919) 评论(0) 推荐(0)

Android手机导出微信聊天记录
摘要:如果android手机上有重要的微信聊天记录,一定有备份的需要,可参考以下方法:1、首先需要您的android手机支持root,用可root的“手机资源管理器”进入目录拷贝微信数据库文件MicroMsg.db: 打开/data/data/com.tencent.mm/MicroMsg,继续打开里面长串字符的文件夹(可能有多个,每个账号对应一个文件夹),拷出其中的MicroMsg.db文件(这个文件相对较大,我的是12M);2、下载配合android数据库管理工具sqlite developer 点击下载;3、打开sqlite devloper ,创建数据库,引用刚才从手机里面导出的MicroM 阅读全文

posted @ 2013-10-22 19:09 Brown Qin 阅读(6543) 评论(0) 推荐(0)

Android按钮屏蔽计时器(handler+TimerTask)
摘要:在Android应用中,遇到多次点击按钮导致的重复提交订单的问题。该问题有两种解决方案,一是后台对近似时间的订单进行过滤,二则在应用层面避免重复点击按钮。 这里,我们通过handler+TimerTask计时器结合实现屏蔽按钮2秒的功能:View Code 1 TimerTask task ; 2 Timer timer; 3 4 timer = new Timer(true); 5 6 soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 100); 7 ... 阅读全文

posted @ 2013-01-30 10:16 Brown Qin 阅读(575) 评论(0) 推荐(1)

使用SoundPool实现语音报号
摘要:在Android开发中我们经常使用MediaPlayer来播放音频文件,但是MediaPlayer存在一些不足,例如:资源占用量较高、延迟时间较长、不支持多个音频同时播放等。 SoundPool(android.media.SoundPool),顾名思义是声音池的意思,主要用于播放一些较短的声音片段,支持从程序的资源或文件系统加载。与MediaPlayer相比,SoundPool的优势在于CPU资源占用量低和反应延迟小。另外,SoundPool还支持自行设置声音的品质、音量、播放比率等参数,支持通过ID对多个音频流进行管理。SoundPool存在的缺陷 1.SoundPool最大只能申请1.. 阅读全文

posted @ 2013-01-30 09:25 Brown Qin 阅读(1033) 评论(0) 推荐(0)

Android加载第三方jar混淆出错的问题
摘要:如果工程引入了android-support-v4的jar类库,那么在工程打包混淆时,就会出现报错提示。例如提示你:You may need to specify additional library jars (using '-libraryjars')。这里先给出解决方案,稍后我们再来解释如何处理类似情况:在proguard.cfg里的后面,添加如下内容:[java]-libraryjars /android-support-v4.jar-dontwarn android.support.v4.**-keep class android.support.v4.** { *; 阅读全文

posted @ 2013-01-30 08:49 Brown Qin 阅读(1913) 评论(0) 推荐(0)

验证码
摘要:jsp中验证码生成类:View Code 1 package com.tenchong.util; 2 3 import java.awt.Color; 4 import java.awt.Font; 5 import java.awt.Graphics; 6 import java.awt.image.BufferedImage; 7 import java.io.IOException; 8 import java.util.Random; 9 import javax.servlet.ServletOutputStream; 10 import jav... 阅读全文

posted @ 2012-06-01 11:05 Brown Qin 阅读(282) 评论(0) 推荐(0)

android采用MediaPlayer监听EditText实现语音播报手机号码(阿拉伯数字)
摘要:项目中有语音播报手机号码的需求,以提高用户体验。我把这项工作放在最后,到今天基本实现,在这里总结如下:android自带TTS语音组建,网上有相关的介绍;看过一些帖子,TTS支持英文的语音发音,但是中文支持还做的不是很好,特别是要朗读阿拉伯数字,操作方式不是很常见。所以我放弃了选用TTS组件实现的方式。这里,我采用了通过MediaPlayer类播放语音文件的方式实现该功能。思路:1、准备0-9十个语音文件【下载地址:http://download.csdn.net/detail/dignity568/4344108推荐使用:http://download.csdn.net/detail/dig 阅读全文

posted @ 2012-06-01 10:13 Brown Qin 阅读(2794) 评论(0) 推荐(0)

Socket读取JSONArray字串越界等相关问题
摘要:好长一个json!server就是把一张表的数据直接复制给我了,还是字符串的形式!然后,然后就越界了,byte[] readByte = new byte[1024]; dataIn.read(readByte, 1, 1000); ——ArrayIndexOutofBounds!加长即是!byte[] readByte = new byte[1024*1024];dataIn.read(readByte, 1, 10000);还有,就是socket读取的中文乱码问题,转换如下(第1行、第7行):1 outw = new PrintWriter(new BufferedWriter(new O 阅读全文

posted @ 2012-03-28 10:48 Brown Qin 阅读(1072) 评论(0) 推荐(0)

关于android客户端在线版本更新的总结(json源码)
摘要:作为新手,对于这个问题,我直接采用的方法就是网上找源码;互联网是个神奇的东西,特别是像android这样开源的语言(不过话说开源开的有点儿过,平台多元化,苦煞了像我这样靠着它吃饭的程序猿),只要你想研究,总能找到有利用价值的解决方案。废话不多说,版本更新一篇文章说清楚,思路是这样:1、在android应用每次登录的时候,通过网络访问远程的配置文件(当然版本控制文件可以多种格式,xml、json、甚至txt……依据个人兴趣而定,知道怎么解析就行),确定要不要更新(若版本号改变,那么就更新;版本控制文件由开发者根据版本变化手动修改;我这里采用的json文件写配置)2、通过解析版本配置文件,将所得版 阅读全文

posted @ 2012-03-24 11:39 Brown Qin 阅读(2934) 评论(0) 推荐(0)

Android中Bitmap和Drawable
摘要:一、相关概念1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2、Canvas画布,绘图的目的区域,用于绘图3、Bitmap位图,用于图的处理4、Matrix矩阵二、Bitmap1、从资源中获取BitmapJava代码 Resources res = getResources(); Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.icon);2、Bi.. 阅读全文

posted @ 2012-03-16 15:31 Brown Qin 阅读(2175) 评论(1) 推荐(1)

android Bitmap总结
摘要:位图是我们开发中最常用的资源,毕竟一个漂亮的界面对用户是最有吸引力的。按照对位图的操作,分为以下几个功能分别介绍:从资源中获取位图获取位图的信息显示位图位图缩放位图旋转1. 从资源中获取位图在前一篇幅介绍了:先获取Resource,然后可以通过资源ID获取Drawable,也可以通过资源ID获取资源文件的数据流。使用第一种方法比较容易,下面详细说明第二种方法。通过Resource的函数:InputStream openRawResource(int id)获取得到资源文件的数据流后,也可以通过2种方法来获取Bitmap,如下:使用BitmapDrawable(A Drawable that w 阅读全文

posted @ 2012-03-16 15:27 Brown Qin 阅读(3594) 评论(0) 推荐(0)

ExpandableListView 布局深入【转载】
摘要:本文是最近我对ExpandableListView的探究心得,也总结了网上说的不全面的几个问题:1、更换ExpandableListView右边的箭头(小图标)的疑问2、展开一个group的实现3、没有child的下拉列表,group不展开的实现1、更换ExpandableListView右边的箭头(小图标)的疑问第一个方法: 网上许多说到在ExpandableListView的布局xml中的groupIndicator更换成@drawable/***,我试过,可行,代码如下:首先在drawable的文件夹下建立自定义选择布局属性的xml文件:ex_smallimage.xml<?xml 阅读全文

posted @ 2012-03-16 14:21 Brown Qin 阅读(1213) 评论(0) 推荐(0)

区别JsonArray&JsonObject的思路
摘要:JSON 还是 JSONArray 的区别在于:属性名后面的括号是'{' 还是 '[',如:JSON对象:user:{name:'张三', age:15}JSONArray:user:[{name:'李四', age:10}, {name:'王二', age: 20}] 阅读全文

posted @ 2012-03-15 13:52 Brown Qin 阅读(941) 评论(0) 推荐(0)

获取应用的当前版本号&获取当前android系统的版本号
摘要:获取当前应用的版本号: private String getVersionName() throws Exception { // 获取packagemanager的实例 PackageManager packageManager = getPackageManager(); // getPackageName()是你当前类的包名,0代表是获取版本信息 PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0); String version = packInfo.versionName; return ve 阅读全文

posted @ 2012-03-14 11:42 Brown Qin 阅读(77740) 评论(2) 推荐(1)

手机处理器之雄霸天下
摘要:手机处理器:目前英国ARM架构占据手机处理器90%的市场份额。手机CPU:1、德州仪器(TI OMAP)2、intel(Xscale)3、高通4、三星(苹果的A4就是改良的三星蜂鸟S5PC110A)5、marvell(intel转卖Xscale于它6、英伟达(NVIDIA)手机CPU的市场虽然暂时是TI、Intel、高通的三国争霸。关注移动互联网! 阅读全文

posted @ 2012-03-07 09:54 Brown Qin 阅读(277) 评论(0) 推荐(0)

Android在Eclipse下编译String.xml出现Multiple substitutions specified in non-positional format 错误
摘要:【问题描述】Multiple annotations found at this line: - error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute? - error: Unexpected end tag string【问题原因】检查后发现是string.xml中的%导致编译失败。【解决办法】1.用%%来表示1个%,和转意符号 \ 的用法相同2.如果你的字符串不需要格式化,可以在你的< 阅读全文

posted @ 2012-02-01 13:11 Brown Qin 阅读(2702) 评论(0) 推荐(0)

修改android SDK 模拟器(avd) 内存大小
摘要:模拟器上运行的程序越来越多,终于报内存不足的异常,安装apk也不行了……才发现原来默认的模拟器内存只有128,太小了,难怪那么卡!修改配置文件以扩大手机内存:1、网上的方法:配置文件目录:C:\Documents and Settings\username\.android\avd\avdname.avd该目录下包含:hardware-qemu.ini;emulator-user.ini;config.ini三个配置文件修改hardware-qemu.ini中hw.ramSize = 128;的值;验证结果,网上的这种方式在模拟器重启之后又变成原来的128了,无效!2、通过命令行修改手机默认内 阅读全文

posted @ 2011-12-23 11:22 Brown Qin 阅读(11197) 评论(2) 推荐(0)

导航