摘要: 用过iphone的朋友一定会很记得ios系统自带的备忘录,里面的字体非常的可爱,所以大家有没有想过把这个字体弄到你的android设备中呢? 其实android提供了非常方便的字体导入了方法了,这里不得不提到一个几乎快被大家遗忘了的一个文件夹assets.其实assets文件夹是用来放置程序要使用的资源的,和res下面的raw文件夹基本作用相同,起主要的区别有下面几点: 在创建android project的时候assets会自动生成,raw文件夹需要带res下面手动创建 assets下面的资源不会被编译成二进制文件,所以也不会生成id,所以只能用路径去引用;raw里面的文件也不会被... 阅读全文
posted @ 2012-03-05 19:28 leeon 阅读(2516) 评论(0) 推荐(3) 编辑
摘要: 与开发实际的产品不同,平时大家写android应用自己玩的时候,不会在意一个问题,就是针对不同的配置的手机去配置不同的资源。 今天琢磨起了这个问题,也就是说由于android现在的设备和版本号越来越多,android在资源上支持为不同的设备环境提供不同的资源。其实我感觉这个问题会越来越值得android开发者的关注,因为现在系统版本发布较快,今年秋天估计就要发布android 5.0 ,随之又将是sdk的一番更新,加上现在HTC 三星和索尼等厂商不断发布新的分辨率和尺寸的手机,变化就更大了。app的国际化,语言版本的复杂化。。。都决定着这个问题的发生。。 其实事情远没有这么复杂,... 阅读全文
posted @ 2012-03-03 20:38 leeon 阅读(1412) 评论(0) 推荐(2) 编辑
摘要: 与缓冲区相关的操作的常见的使我们的字符的输入输出操作,其实在接触过操作系统和编译原理之后,感觉计算机其实就是在处理一串又一串的字符串。今天给大家介绍get家族的几个函数。 很多最初使用C语言进行字符串操作,并且认识到缓冲区问题的一般都是从类似下面的程序开始的: 很多初学者会问,按下回车,为什么没等第二次输入程序就结束了,这就是缓冲区的原因了。这里需要了解一下getchar函数,这也是今天第一个要给大家介绍的stdio家族中getchar。 (1) int getchar(void) 函数每次从stdin缓冲区读入一个字符遇到回车返回,并且回车... 阅读全文
posted @ 2011-12-08 20:38 leeon 阅读(3260) 评论(3) 推荐(3) 编辑
摘要: 这学期学了计算机学院王彦老师的计算机安全概论,算是一门入门级的课程,但是自己还是长了很多的见识的,学到缓冲区溢出攻击的时候,突然想到自己拖了很久的一件事情,就是好好的总结和学习一下C语言缓冲区的问题。时间过了这么久,真是有些惭愧了。这篇博文应该算是入门级的了,欢迎大家指教。 C语言可以用指针直接操作内存地址,这是他的一个优势,但是也是安全最容易出问题的地方。我们知道C语言是没有内存保护的,他假定C语言负责内存的安全。过去的经验告诉我,Objective-C语言也是这样的,相反java就提供了内存保护的机制。详细的就不多说了。说一下缓冲区的来历。 在linux上写程序,了解操作系统的话,我们都知 阅读全文
posted @ 2011-12-06 21:27 leeon 阅读(2587) 评论(4) 推荐(3) 编辑
摘要: 这个学期开始了自己期待已久的一门课程,编译原理,时间像回到了大二操作系统课程的时候一样,充满了期待却又感叹自己的实力不足,几个头文件,就可以把自己弄晕的日子。 昨天第一次实验已经结束了,实现一个简单的词法分析器。看到很多同学上传了自己的程序,龙哥的相册名字很有意思,从零开始,那我觉得自己甚至连零都还没有达到,起码现在是吧,所以这个标题干脆就叫做了在零之前。 我是一个技术控,想做自己的webFace想做自己的LBS也想做自己的编译器,权当作是爱好吧,我想通过自己的这些日志记录一下这个编译器的成长过程。我把它叫做了Yui,是为了纪念自己的大学日子。我在自己的每一个阶段都有一个代号,这个Yui最.. 阅读全文
posted @ 2011-12-03 10:24 leeon 阅读(443) 评论(0) 推荐(2) 编辑
摘要: 本文最新版本已经移至http://leeon.org/%E7%A8%8B%E5%BA%8F%E8%A8%AD%E8%A8%88/android-activity-lifecycle/android中 activity有自己的生命周期,对这些知识的学习可以帮助我们在今后写程序的时候,更好的理解其中遇到的一些错误。这篇文章很长,希望不要耽误大家的时间~ 今天不会涉及太多关于activity栈的东西,主要说activity自身的生命周期区分几个概念1 Activity 官方解释为 “An Activity is an application component that provides a scr 阅读全文
posted @ 2011-11-24 21:09 leeon 阅读(1352) 评论(13) 推荐(4) 编辑
摘要: 一科又一科的考试彻底把自己的节奏打乱了,额,不知道什么时候开始,至少现在来看大学的自己真的转型了。想起高中的自己,河北的浓厚的高考氛围使得自己不得不融入这样一个环境中,要不然就去不了自己心仪的大学,无奈~不喜欢考试,喜欢钻研自己喜欢的知识~好久没有在园子里写东西了。 昨天,IBM全球副总裁王阳博士率领IBM高管一行来到了哈工大与我们软件学院和计算机学院的同学们进行交流,去之前并没有报太多的东西,到场后,正在放映IBM 100年的宣传片,这个宣传片彻彻底底的将我征服了,让我看到了计算机的历史,从打孔机的诞生,到现在的每秒钟学习500本书籍的walston智能计算机,100年,世界发生了天翻地覆. 阅读全文
posted @ 2011-11-23 22:01 leeon 阅读(493) 评论(6) 推荐(1) 编辑
摘要: 和大家分享一个小软件 很多朋友安装了windows和ubuntu的双系统,(额,这里指的是硬盘安装,wubi的话直接在控制面板中像卸载普通程序一样就好了)。但是卸载的时候,如果直接删除linux分区的话,往往会导致无法启动计算机进入系统了,这是因为安装ubuntu的时候,重写了mbr的缘故。 所以一个安全的方案就是,先修复一下计算机的mbr,然后就可以直接删除linux所在的分区了。 那么首先,下载 MbrFix软件吧 http://115.com/file/dne7q4hg 下载后,解压文件,将MbrFix.exe拷贝到C盘下。 打开DOS(开始->运行->输入cmd->回 阅读全文
posted @ 2011-11-21 18:44 leeon 阅读(598) 评论(0) 推荐(2) 编辑
摘要: 今天,看一位学长的博客《递归的力量》,受到的启发还是很多的,以前写递归程序,从来都没有好好想过,这里为什么要用到递归,以及什么样的情况要用到递归。引用他博文中的一句话,也是思考的一个方式:可以用递归实现的场景要满足两个条件: 第一:这个问题是否可以分解为形式相同但规模更小的问题? 第二:如果存在这样一种分解,那么这种分解是否存在一种简单情境? 有一个例子是用递归判断一个回文序列,回文大家都知道就是类似abba 或者abcba这样的序列,判断回文的基本思想也就是首尾字符是相同的,由于他的对称性,那么可以得知,这各串是可分解的。那么有没有一种简单可终止的情况,那就是剩下最后一个字符或... 阅读全文
posted @ 2011-11-17 20:58 leeon 阅读(4525) 评论(9) 推荐(1) 编辑
摘要: 晚上好~今天继续给大家分享一下第二个重要的感应器,其实获取方向本应该很简单的事情,在文章一中看到 有个TYPE_ORIENTATION 关键字,说明可以直接获取设备的移动方向,但是最新版的SDK加上了这么一句话“TYPE_ORIENTATION This constant is deprecated. use SensorManager.getOrientation() instead. ”也就是说,这种方式已经被取消,要开发者使用 SensorManager.getOrientation()来获取原来的数据。 实际上,android获取方向是通过磁场感应器和加速度感应器共同获得的,至于具.. 阅读全文
posted @ 2011-11-09 21:56 leeon 阅读(2540) 评论(0) 推荐(2) 编辑
摘要: 上一篇文章http://www.cnblogs.com/octobershiner/archive/2011/11/06/2237880.html介绍了sensor的基本知识以及一个使用其中加速度感应器获取数据的例子。 提到过一个问题,就是说感应器刷新频率太快,假如我们要做一个UI中,需要根据方向数据绘制一个一个移动的箭头,那么就要太过频繁的刷新绘制界面,占用很多的资源,体验性也会很差,《android 2高级编程》中一个演示测力器的例子,却无意中给我们提供了一种此情况下刷新UI的解决方案,这下我们就知道了如何防止感应器在界面中过于频繁的刷新。 下面是自己修改的代码,供大家参考 1 /* .. 阅读全文
posted @ 2011-11-09 15:57 leeon 阅读(1096) 评论(0) 推荐(2) 编辑
摘要: 在开发应用程序的过程中,有时候我们需要记录用户的偏好,或者用户名密码之类。这就要涉及到数据的存储,android平台下存储数据的方式主要有如下几种方式:Shared PreferencesStore private primitive data in key-value pairs.轻量的以键值对的形式进行存储Internal StorageStore private data on the device memory.设备上的文件存储External StorageStore public data on the shared external storage.外部的文件存储,一般指存储在S 阅读全文
posted @ 2011-11-07 18:21 leeon 阅读(2021) 评论(0) 推荐(2) 编辑
摘要: FETC项目指导老师提出了新的需求,想要在游戏地图中表现出用户用户当期移动的方向,再用GPS的话显然很不靠谱,所以想到了android强大的感应器。。。很多移动设备都内置了感应器,android通过Sensor和SensorManager类抽象了这些感应器,通过这些类可以使用android设备的传感器一 介绍Sensor类SDK只有一句介绍“Class representing a sensor. Use getSensorList(int) to get the list of available Sensors.”,表示一个感应器的类,可以使用getSensorList方法(此方法属于接下 阅读全文
posted @ 2011-11-06 09:11 leeon 阅读(5940) 评论(1) 推荐(2) 编辑
摘要: 今天学习了新的设计模式----观察者模式,其实这种设计模式,我们早就接触过,做过GUI编程的同学肯定会知道,事件的注册监听等机制,其实这个机制的实现就是利用了观察者模式。 可能在程序中,我们需要在某些数据变化时,其他的类做出一些响应,我们总不能开一个线程,每隔一段时间就去检测数据有没有发生变化吧,那样效率很低,我们更希望那些具有变化属性的类能够主动将自己的变化推送给,希望检测这些变化的其他类。正如我们去医院排队,不能隔两分钟就去问大夫“轮到我了吗”,而是坐在那里等大夫的通知,大家都接收到一个名字信号,叫到谁谁就去~ 而观察者就是这样一种模式,大夫的名单就是被观察者,也叫做一个 主题。每一个病. 阅读全文
posted @ 2011-11-05 19:55 leeon 阅读(4883) 评论(3) 推荐(4) 编辑
摘要: 这两天干了点别的,原因是昨天使用getProviders()方法时,用到了ArrayList这个类,突然想深入的了解他的机制,结果收获非常多,很纠结的看了一位大神分析的JAVA COLLECTION FRAMEWORK的源代码,这样Fail Fast机制就赤裸裸的出现在眼前了,中间核心代码带我走进了设计模式的大门,原来源代码使用了装饰器设计模式,今天自己也是总结了一下学习成果 在http://blog.csdn.net/octobershiner/article/details/6631997 言归正传,调用Android系统的震动,只需要一个类 那就是Vibrator ,这个类在hard.. 阅读全文
posted @ 2011-11-05 09:32 leeon 阅读(1583) 评论(7) 推荐(1) 编辑