稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

Android NDK开发的一些技巧

Android NDK(Native Development Kit)是基于Java JNI的使用C/C++和Java来混合开发应用的一种方式,甚至在Android 2.3(API 9)以后可以用Native(Native这个字在不同的语境中意义是不一样的,这里指的是JNI中的C/C++的代码;如果放在Hybrid中Native就是指平台原生的语言和API)代码来创建标准界面组件Activity,换句话说就可以用纯C/C++来写一个Android应用,但是貌似还没有人这么干过,这只是一种理论上的可能性。因为除了Activity以外很多东西比如权限,广播通知等等很多东西在Native中还是不够方便。

在安卓设备与PC之间传递文件

现在智能手机(这里的手机是广义的,包括手机,平板电脑等移动智能设备)在生活中的角色越来越重要,人们使用手机的时间远远大于电脑,由于手机的便携性,所以很多时候我们会需要用手机来携带数据或文件,或者用于娱乐。比如乘坐火车或者汽车时,用手机来看个电影还是相当不错的,现在的手机屏幕也够大,存储空间充足,完全不成问题。虽然移动端也有足够多的客户端可以下载视频等,但是远没有PC资源多,也没有PC下载方便。但是下载后如何把视频弄到手机上面,以及当需要把其他一些文件弄到手机上面时,也是一个技术问题,今天就来探讨一下。

诡异的EOF Exception

近日在写一个简单的HTTP代码中遇到了诡异的EOFException,当读取ResponseCode的时候就抛出了EOF异常,感觉很诡异,下面进行问题还原,以及分析和解决过程.

问题

有问题的代码如下:

从手机丢失看数据安全

手机在现代生活中扮演重要角色,里面有大量的隐私和数据,手机银行,支付宝等都能操作个人的财产,所以手机的安全也越来越重要,一旦手机丢失,造成的不仅仅是一部手机的损失,还可能造成隐私的泄露,重要数据的丢失以及财产的损失。

手机丢失后应该做的事情

2015年1月28日下班,晚上七点左右在挤公交车,可能上车时,手机(红米Note)被偷,由于平日里都是骑自行车上下班,只是偶尔遇到不好的天气才会坐公交,刚好那天是2015年的第一场雪,下了一天多没停,不方便骑车,所以就坐公交,正值下班时人又多又挤,估计是上车时被小偷钻了空子。

先是打了个电话,确认手机的状态,因为也有可能是忘在公司了。电话关机,可以确认被偷。然后马上采取安全补救措施:

训服你的Mac

天下武功唯快不破,提升效率是提升战斗力的唯一途径,而一个舒适且高效的开发环境是保证效率的重要方面,对于习惯了Windows和Linux的人来说,习惯使用Mac还是需要一定的时间的,这是就总结一些,如何配置并习惯Mac。

Introduction to Swift

Swift是水果平台新引进的一个开发语言,可以用它来取代Objective-C来开发Mac OS X以及iOS上面的应用程序。这门语言引入了大量的具有时代气息的新型编程语言特性,具有动态语言的简洁方便,是未来的发展方向。这是一门新的语言,今年六月才问世,所以如果今天开始学习Swift,三五年后,孤将是“有着五年经验的Swift砖家”了,错过了C,C++,Java,Python等,这回可以跟所有人站在同一起跑线上了。

下载并编译CyanogenMod源代码

CyanogenMod是除了Android官方源码之外的最受欢迎的Android的一个分支,它是干净,几乎接近原生Android,且方便为设备进行定制,在编译和制作ROM上面较原生有很大改进,是开发者学习源码和自己制作ROM的最佳选择。

官方网站在这里.

repo在这里.

环境说明,本次所有操作都是在Ubuntu 12.04(Precise)里面进行的。另外需要说明的是,我的环境访问谷歌和谷歌相关的服务都是没有问题的,关于如何访问谷歌可以参考这位牛人写的博客

让Android模拟器飞一会

Android模拟器是公认的慢,而且不是一般的慢,即使在高性能的PC上,跟开发环境没关系,因为它就是慢。但是我们又必须使用模拟器,比如在测试Android不同版本的兼容性时,或者在测试不同屏幕尺寸的UI显示问题时,都是需要的。当然我们还是鼓励使用一个真机来调试和测试,模拟器无法取代真机。但是在测试兼容性时,我们还是要使用模拟器,因为即使是BAT也不可能把各种版本,各种屏幕的Android手机都买一个。