- 博客(106)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
原创 证书
一、背景在上一篇文章中提到客户端需要使用服务端的公钥加密预备主密码并传递给服务端,那么怎样保证这个服务端的公钥来自于真正的与你通信的服务端,而不是其他中间人呢?这个时候就需要引入证书这个概念了,通过证书来向客户端证明服务端的真实身份合法性。二、什么是证书证书其实就是认证机构对公钥及其持有者的信息加上数字签名的产物。三、证书的应用场景
2016-02-09 22:11:43
449
原创 SSL/TLS
一、背景网上购物涉及账户安全信息等,需要使用安全传输才能保障账户的安全,这时就引入了SSL/TLS的概念它与HTTPS的联系如下:HTTPS = HTTP + SSL/TLS二、SSL/TLS解决的几个问题及相关技术1.确保数据在发送过程中不易被窃听数据机密性问题需要:(1) 对称密码(2) 密钥不能被攻击者预测,需要伪随机数生成器产生密钥(3) 公钥密
2016-02-08 21:21:49
425
原创 AsyncTask的理解
一、AsyncTask调用流程1.在UI线程new AsyncTask实例;2.在UI线程调用execute方法;3.execute会调用AsyncTask的executeOnExecutor方法,如下图:该方法会在UI线程上调用onPreExecute4.调用publishProgress方法5.publishPro
2016-02-06 10:42:38
323
原创 android studio 显示 no debuggable applications
android studio 默认是没有开启debuggable 功能的,在tools里打开该功能即可,Tools->Android->Enable ADB Integration。如下图所示:
2016-02-03 23:57:43
571
原创 android发送短信
public static void sendMessage(Context context, String text, String phoneNumber) { context.registerReceiver(sendMessage, new IntentFilter(SENT_SMS_ACTION)); context.registerReceiver(receiv
2015-11-13 16:19:55
353
转载 谈谈App混合开发
混合开发的App(Hybrid App)就是在一个App中内嵌一个轻量级的浏览器,一部分原生的功能改为Html 5来开发,这部分功能不仅能够在不升级App的情况下动态更新,而且可以在Android或iOS的App上同时运行,让用户的体验更好又可以节省开发的资源。下面来谈谈Hybrid App开发中的技术问题。iOS方面的我不太了解,我就主要谈谈Android开发中的,其中可能会有很多说错的
2015-09-06 22:31:14
8718
原创 关于android项目中在eclipse里引入新jar导致新jar中的class not found Exception的解决
右键项目--->properties--->Java Build Path--->order and export ,勾选你自己刚选择的jar,然后top一下就ok
2015-06-08 15:33:00
412
原创 android打开文件夹
Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_GET_CONTENT); File file = new File(LOG_DIR); intent.setDataAndType(Uri.fromFile(file), "*/*"); startActivit
2015-05-26 21:32:03
2764
2
原创 android获取mac地址
public static String getMacAddress(Context c) { try { WifiManager wifiManager = (WifiManager) c .getSystemService(Context.WIFI_SERVICE); if (wifiManager != null) { WifiInfo wifiInfo =
2015-04-16 10:53:19
335
原创 nodejs JSON.stringify报Converting circular structure to JSON错误
原因是stringify函数的参数进行了循环引用,比如var obj = {}; obj.token=token; token进行了循环引用,只需改变属性名称既可,即obj.access_token=token;
2014-11-27 00:56:28
9345
原创 关于Android notification intent传值无效或重复问题的解决
解决方法PendingIntent pIntent = PendingIntent.getActivity(context, iUniqueId, intent, 0);方法中的第二个参数 requestcode传染图
2014-09-06 14:02:03
2853
原创 Bitmap too large to be uploaded into a texture (587x7696, max=2048x2048) 的解决方法
1.关闭manifest配置中的硬件加速配置
2014-08-31 23:57:29
2845
原创 android.textiview.settextcolor失效的问题
使用textview.setColor(getResources().getColor(R.color.xxx))不要使用textview.setColor(R.color.xxx)
2014-08-19 21:02:45
3469
原创 the specified child already has a parent. you must call removeview() 的解决方法
在Android4.0api以上版本继承FragmentStatePagerAdapter
2014-08-09 20:08:52
2104
原创 Resources$NotFoundException: Resource ID #0xffffffff的解决办法
当在activity中使用viewpage时,切忌要手动设置它的id,否则这样当setAdaper后会出现Resources$NotFoundException: Resource ID #0xffffffff的异常
2014-07-17 10:39:36
3458
原创 javascript中property与attribute的区别
attribute表示网页上面某个元素的属性,如img标签的src或者a标签的href之类的property表示dom节点的属性,比如tagName、nodeName、nodeType等例如:$(input[type=checkbox]).attr("checked") // "checked"$(input[type=checkbox]).prop("checked") //
2014-02-07 18:07:06
806
原创 zepto源码系列一之核心$()
最近在做移动端web项目,用到了开源框架zepto,语法上和jquery并无明显区别,所以怀着好奇的心情看了一下其源代码,接下来先介绍其核心方法$() 一、$()的源码 // `$` will be the base `Zepto` object. When calling this // function just call `$.zepto.init, which
2013-12-27 23:02:45
2473
原创 Node之阻塞与非阻塞IO
1.阻塞IO代码示例echo 'hello';sleep(5000);echo 'world';说明:php中,sleep会阻塞当前所在线程(每当apache接收到一一个请求时都会产生一个php线程去处理当前请求,而node则是采用一个长期运行的进程)运行结果: hello 5s后 world2.非阻塞IO代码示例console
2013-12-18 06:44:51
988
原创 Node js之hello world
var http = require('http');//引入http模块var serv = http.createServer(function(req, res) {//创建一个服务器,req代表请求,res代表响应 res.writeHead(200, {'Content-Type': 'text/html'}); res.end('hello world');});serv.
2013-12-16 21:22:21
451
转载 【转】对 HTTP 304 的理解
最近和同事一起看Web的Cache问题,又进一步理解了 HTTP 中的 304 又有了一些了解。 304 的标准解释是:Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last M
2013-11-02 14:06:52
505
转载 sdch: chrome支持的新HTTP传输压缩算法
概述我们知道,为了加快网络传输,一般都使用gzip对文本进行压缩。如果你现在用最新版的chrome去访问页面,然后打开network控制面板,查看http headers,细心的你会发现在Request Headers里的Accept-Encoding不再是gzip,deflate,而是多了个sdch,变成了gzip,deflate,sdch。如图:SDCH到底
2013-11-02 14:00:01
1954
原创 解决node js中has no method的错误
var http = require('http');function start() { http.createServer(function(request, response) { console.log('request received'); response.writeHead(200, {'Content-Type' : 'text/plain'}); respon
2013-10-31 00:04:19
2645
转载 JavaScript内存管理
简介低级语言,比如C,有低级的内存管理基元,想malloc(),free()。另一方面,JavaScript的内存基元在变量(对象,字符串等等)创建时分配,然后在他们不再被使用时“自动”释放。后者被称为垃圾回收。这个“自动”是混淆并给JavaScript(和其他高级语言)开发者一个错觉:他们可以不用考虑内存管理。内存生命周期不管什么程序语言,内存生命周期基本一致:分配你所需要的
2013-10-29 10:21:18
415
转载 浏览器的渲染原理简介
浏览器工作大流程废话少说,先来看个图:从上面这个图中,我们可以看到那么几个事:1)浏览器会解析三个东西:一个是HTML/SVG/XHTML,事实上,Webkit有三个C++的类对应这三类文档。解析这三种文件会产生一个DOM Tree。CSS,解析CSS会产生CSS规则树。Javascript,脚本,主要是通过DOM API和CSS
2013-10-26 09:56:52
517
转载 javascript event loop
Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。JavaScript语言就采用这种机制,来解决单线程运行带来的一些问题。想要理解Event Loop,就要从程序的运行模式讲起。运行以后的程序叫做"进程"(process),一般情况下,一个进程一次只能执行一个任务。如果有很多任务需要执行,不外乎三种解决方法。(1)排队。因为一个进程一次只能执行一
2013-10-22 10:46:45
702
原创 JavaScript之面向对象的程序设计1—对象创建方式
1.工厂模式function createPerson(name, age) { var obj = new Object(); obj.name = name; obj.age = age; obj.say = function() { alert(this.name); }; return obj; } var p1
2013-08-16 09:41:12
472
原创 Python学习二之文件
一、导入os模块,打印当前工作目录import osos.getcwd()运行结果:'/Users/shadow/Documents'二、切换包含数据的文件目录os.chdir('../HeadFirstPython/chapter3')os.getcwd()运行结果:'/Users/shadow/HeadFirstPython/chapter3'三、打开文件目
2013-07-06 17:15:01
490
原创 Python学习一之列表类型
1.声明一个列表并打印cast = ["cleese", "Palin", "Jones", "Idel"];\ print(cast);运行结果:['cleese', 'Palin', 'Jones', 'Idel']2.获取列表的长度print(len(cast));运行结果:43.在列表尾部添加一个列表项cast.append("Gi
2013-07-02 23:27:31
659
原创 Android IntentService源码详解
一、为什么要重写onHandleIntent方法?public abstract class IntentService extends Service {IntentService也是继承于Service,而Service生命周期无外乎onCreate,onStart,onDestory,所以我们先来看看这几个生命周期方法的实现onCreate: @Override p
2013-06-18 10:41:52
1545
原创 Android IntentService详解
一、Service真的能执行耗时操作吗?package com.shadow.intentservicedemo;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.util.Log;public class MyService ex
2013-06-17 22:51:03
1882
原创 判断sdcard是否有足够的空间
/** * SDCard是否可用 * @return */ public boolean sdCardIsAvailable() { String state = Environment.getExternalStorageState(); return state.equals(Environment.MEDIA_MOUNTED); } /** * sdcard
2013-06-16 21:57:47
736
原创 Android命令行查看内存使用情况
进入命令行界面,然后cd到%ANDORID_HOME%/platform-tools,然后输入adb shell dumpsys meminfo 应用包名即可得到下列结果:Android应用程序的内存分配包括dalvik和native,Android中的每一个app都运行在一个dalvik虚拟机进程中,故对于bimap这一类的大对象而言,应用程序GC默认只会清理dalvik上分配的内存(即
2013-06-04 14:03:12
3285
原创 android异步图片加载三之handler+线程池+消息队列模式+缓存
假象现在有这样一个需求:一个微博客户端或者多媒体客户端需要从服务端拉取一些数据,该数据中包含了很多图片,如果不用异步加载方式,可能会使主线程阻塞导致ANR异常,但是异步加载后如果每次都通过网络去下载图片,性能上会差很多,而且也会浪费流量,导致用户的不满,故现在增加一个缓存用来存储图片,缓存中包含内存存储和sdcard存储。先从缓存中去,在缓存中先从内存中取出,如果内存中没有再从sdcard去,
2013-06-04 13:46:57
624
原创 Unable to add window -- token android.os.BinderProxy...的解决方法
当需要弹出dialog时有时会出现以下异常错误最后将activity传入dialog中
2013-05-30 10:57:24
4484
怎样理解java中的回调函数
2010-11-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人