- 博客(45)
- 收藏
- 关注
原创 Android跨进程通信——AIDL使用方法浅析
此篇博客将介绍Android应用开发中的一种常用的跨进程通信手段——AIDL的使用。我花了一周时间,查阅了许多的资料,在众多AIDL介绍的文章中来来回回,反反复复地梳理线索,将一些概念反复推敲,最终得出了AIDL使用的初步教程。之所以说是AIDL使用方法的初步教程,是因为IPC实在是一个很有学问的技术,我学识有限,在看罗升阳老师有关AIDL的一系列博客后,我认为,我最多只能做一个使用方法的介绍,而不是一个原理分析,因为"reading the fucking source code"的能力还差得很远。在
2015-03-29 18:36:17 1132
原创 Linux 命令行解析之getopt方法详解
我在研究android底层时,分析wpa_supplicant模块代码,从main.c文件开始分析,看到main函数里有一个方法叫作getopt,该方法用于解析main函数传进来的命令行参数,并做出相应的动作。学习以后,记录如下。先看main函数的原型:int main(int argc, char *argv[]);,其中argc代表传进来的参数个数,argv则是一个指向char类型的指针数组,它还有一种形式是char **argv,其含义是一样的,都是包含了argc个char* 的数组。getop
2015-03-13 18:26:51 1306
原创 linux配置jdk以及eclipse的经验
本经验是我在linux配置jdk后的总结,详解了怎么在自己的用户目录下配置jdk,同时支持jdk1.6和jdk1.7的快速切换,同时可以使eclipse正常使用。首先我们要准备的原材料如下:1. 从oracle官方下载的jdk7xx.tar.gz(目前的jdk7还是提供的是压缩包),只要以7开头的就是jdk1.7以上版本。2. 从oracle官方下载的jdk-6xx.bin(直接.bin,即二进制可执行文件,以前也提供的是压缩包,不过1.6可能有点老了,就不提供压缩包下载了,不过一样用)。3. 官方下
2015-03-06 22:33:55 1033
转载 Gerrit 使用规范
代码提交要求一个Commit对应一个修改点(除非是在项目初始阶段或是升级BSP时)。不要随便修改文件的属性。Windows 修改过的文件属性会变成755,上传代码时请注意修改成文件的原属性,可以用git whatchanged 来查看自己commit修改的文件。缩进格式跟原文件保持一致。不要修改跟提交内容无关的代码。Git commit 注释要求
2015-03-05 09:49:20 1560
原创 Git实验室——快进式推送(FastForwards)与非快进式推送(NonFastForwards)
本篇博客介绍git push的快进式推送和非快进式推送,也可以在此处访问。首先记住,快进式推送是合理地,非快进式推送时不合理的。所谓的快进式推送(FastForwards),指的是git push时,远程版本库的最新提交是本地版本库的祖先提交,此时,git push是可以顺利进行的,push之后远程版本库的提交状况与本地版本库是一致的。而如果执行git push时,远程版本库的最新提交不是本地版本库的祖先提交,那么push是会被拒绝的,因为如果可以顺利将本地的提交push到远程版本库,那远程版本库的最新提交
2015-02-27 11:06:26 6266 2
原创 Git技巧之解决git merge的合并冲突(非树冲突)
本篇文章讲解git pull从远程版本库拉回时发生冲突的解决方法。非树冲突则指,这种冲突并不是由于不同版本库对同一文件都进行重命名而引发的冲突,而仅仅是由于对同一文件的修改导致的冲突。来举个例子:Step1:先看一下我建立的几个版本库,这里使用的是Windows平台(事实上,这是件很坑爹的事情,很多东西都很不爽,比如说.gitignore很不好搞,还有接下来文中也会出现一个问题),我在F:\GotGit目录下建立了三个目录:rere.git(一个裸版本库,这里充当远程版本库)、user1(用户1的版
2015-02-24 14:51:46 7550 1
原创 git技巧之通过git commit –amend修该上次提交
当我们想要对上一次的提交进行修改时,我们可以使用git commit –amend命令。git commit –amend既可以对上次提交的内容进行修改,也可以修改提交说明。举个例子:Step1:我们先在工作区中创建两个文件a.txt和b.txt。并且add到暂存区,然后执行提交操作:
2015-02-23 11:10:14 10891
原创 Git技巧之git reset使用详解
Git中reset命令是一条很重要的命令,它的主要用途是重置分支引用的指向。分支引用是什么?分支引用即HEAD所指向的分支。可以在.git/HEAD文件中查看:工作区中执行:$cat .git/HEAD可以看到输出:refs/heads/分支名,我们假定分支名为newbranch,即当前我们位于newbranch分支,newbranch就是分支引用,我们打开/refs/heads/newbranch:工作区中执行:$cat .git/refs/heads/newbranch可以看到输出是一个40位
2015-02-21 14:17:04 8238 2
原创 Git技巧之git add -u与git add -A
言简意赅:git add -u:将文件的修改、文件的删除,添加到暂存区。git add .:将文件的修改,文件的新建,添加到暂存区。git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。选用的时候要注意根据情况适用对应指令。
2015-02-12 19:05:26 14168
原创 Android 使用Parcelable接口在进程间传递对象
Android在使用Intent打开一个Activity,Service时,发生了进程的切换。如果我们想要将一个自己的对象通过Intent传递给另一个Activity,Service的话,我们就需要用到Parcelable接口。Parcelable接口的作用是将我们的对象序列化到一个Parcel对象中,Parcel对象中的writeXX()方法是C++实现的,可以将写入的数据写到字节流中。下面以一个非常简单的demo来展示Parcelable的使用方法:
2015-02-10 18:38:49 1784
原创 Android Studio删除module的方法
如题,小记一下:Step1:点击File菜单,选择Project Structure项。或者直接快捷键shift+ctrl+alt+s。Step2:选中要删除的module,点击左上角的红色减号。Step3:回到项目列表中,右击原先是module的文件目录(此时已经不是module了),选择delete选项。OK了。
2015-02-10 10:21:19 943
转载 adb logcat 查看日志
使用 logcat 命令 查看和跟踪系统日志缓冲区的命令logcat的一般用法是:[adb] logcat [option>] ... [filter-spec>] ... 下文介绍过滤器和命令选项,详细内容可参见Listing of logcat Command Options。 可以在开发机中通过远程shell的方式使用logcat命
2015-02-09 10:24:42 924
原创 Android Wifi模块 ScanResult类源码分析(基于Android 5.0)
类:ScanResult,实现了Parcelable接口目录位置:/frameworks/base/wifi/java/android/net/wifi/类描述:ScanResult类描述了一个已发现AP的信息。除了在该类中描述的属性,supplicant还跟踪了quality(品质),noise(噪声),maxbitrate(最大比特率)属性,但是并不立刻将它们通知给客户端。
2015-02-08 23:30:46 2725
原创 Java 正则表达式中量词的贪婪型,勉强型和占有型讲解
今天在做markdown转换器项目时遇到了一个问题,让我回顾了一下正则表达式中量词的贪婪型,勉强型和占有型这三种类型的匹配方式。这些匹配方式在匹配时需要根据项目需求合理地选择搭配,否则程序结果可能完全出乎你的意料。我的问题是,有如下字符串:“This is [google][1],this is [apple][2],and this is [ms][3].”我需要依次将“[google][1]”,“[apple][2]”,“[ms][3]”给扫描出来。
2015-02-06 19:29:50 2448 1
原创 WordPress 对付访问很慢的一种可能的方法
好吧,我刚开张自己的博客,就出了麻烦。明明里面啥也没有,可是登陆到后台很慢,直接访问我的网址,也很慢。一开始我以为是主机比较烂的原因,没有当回事。但是后来实在是心灰意冷,于是百度了一下,很多人说插件安装太多,我在心里否定了,因为我的站里还几乎没有安装插件。后来看到一条解决方法,是禁用Google字体的方式,彻底解决了我的痛苦。记录一下,也许您也需要。Step1:进入后台,点击左侧菜
2015-02-04 09:49:31 1487
原创 算法——利用Trie树统计某种前缀的单词的个数
题目描述:向词典中添加单词(几次同样的输入当做不同的单词,这里默认英文单词)。然后进行查询单词的任务,输入一个单词前缀,则要输出以该单词为前缀的单词个数。程序要求:先输入字典的单词个数,并以此输入这些单词。再输入要查询的单词前缀个数,并且输入这些单词。依次输出查询得出的单词前缀对应的单词个数。
2015-01-25 17:31:22 2304
原创 算法谜题#57 斐波那契的兔子问题
来源:《算法谜题》(人民邮电出版社)的问题第57。难度:简单问题描述:一对兔子被圈养,假定最开始时这对兔子(一公一母)是刚刚出生的,而且所有的兔子在生命的第一个月里不具备繁殖能力,在第二个月的月底会产生出一对新的公兔和母兔,并且至此以后每月如此,问经过一年以后兔子的数目还有多少对?
2015-01-24 12:36:03 1313
原创 算法练习——冒泡排序的两次进化
冒泡排序是一个很简单的排序算法,也是每一个学计算机的同学一开始就能掌握的算法。冒泡排序虽然简单,但是却很简陋,是效率很低的排序算法。如果我们对其稍加改造,它还是能够变得灵活一些的。这就是这篇文章的主题,冒泡排序的改进方式。先来看一下我们熟悉的冒泡排序(这里使用的C++编译器是Xcode,并不是兼容所有版本的,所以大家将其当作伪代码好了,,,):
2015-01-13 19:29:43 1141
原创 Ubuntu下lsusb找得到设备但是adb devices找不到的解决办法
Step 1:在终端运行 lsusb会发现结果有会有如下类似记录:Bus 001 Device 008: ID 0bb4:0c02 High Tech Computer Corp.Step 2:这时键入sudo vim /etc/udev/rules.d/50-android.rules在打开的文件中增加以下文本:
2015-01-04 10:14:59 15782
转载 Android的权限机制
Android的权限机制 Android是基于Linux的系统,其权限访问控制自然离不开Linux的权限访问控制,而在第一章当中,将分成两个部分来剖析Android的权限控制系统。一. Linux权限机制 Linux的权限访问是由进程(访问者)和文件(被访问者)两部分组成的。其中相当一部分内容参考至APUE[1]。1.1 Llinux文件权限 我们在Lin
2014-12-31 14:49:54 663
转载 Android学习 StateMachine与State模式
一 State模式意图: 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。(Objects for States) 对象内部状态决定行为方式,对象状态改变行为方式改变;但这里为何要强调内部状态,外部状态改变也同样会影响行为方式的改变,通常外部状态的改变都会反映到内部状态上来。 Command模式是将命令请求封装成一个为对象,将不同的请求对象参数化以
2014-12-29 15:24:31 726
转载 UML类图几种关系的总结
转一篇很通俗的UML图介绍,一看就懂。在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有
2014-12-29 14:56:48 585
转载 Linux中grep命令的用法
1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。-I:不区分大 小写(只适用于
2014-12-25 13:30:41 648
转载 Android中Preference的使用以及监听事件分析
转载请注明出处: http://blog.csdn.net/qinjuning 在Android系统源码中,绝大多数应用程序的UI布局采用了Preference的布局结构,而不是我们平时在模拟器中构建应用程序时使用的View布局结构,例如,Setting模块中布局。当然,凡事都有例外,FMRadio应用程序中则使用了View布局结构(可能是该应用程序是m
2014-12-23 14:54:26 586
转载 Android Studio快捷键集合
我想说Eclipse转android studio真心有些水土不服啊,那个什么ctrl+1,什么shift+alt+o,真心不如Alt+enter来的直白==此文是转来的,慢慢调整习惯吧,手感这种东西很奇特的。===========================================================================================
2014-12-20 09:33:40 750
原创 Android Studio中使应用全屏无标题的方法(老方法好像不能用了)
我发现换了android studio,重拾android开发以后,原先的让activity无title,无状态栏的方法没有用了,,,
2014-12-20 09:17:26 4124 3
转载 Android_studio IDE使用初步
转载的一篇,,,刚换的android studio 真的有些不习惯呢,,,====================================================================================================今年的Google全球开发者大会虽然没有新的Android系统和设备,但是还是推出了一些不错的产品,Andro
2014-12-20 09:02:24 7423
转载 Android使用FileObserver对sdcard文件或文件夹监控
Android系统API提供了FileObserver抽象类(Linux的INotify机制)来监听系统/sdcard中的文件或文件夹,FileObserver类能对sdcard中的文件及文件夹的打开、创建、移动和删除操作进行监控。下面看看代码实现:package com.orgcent.filelistener;import android.app.Activity;
2014-12-19 11:01:18 855
转载 Java并发——函数yield(),sleep()和wait()的区别
转载请注明出处:http://jiaguwen123.iteye.com/blog/728725 ,尊重原创。首先,wait()和notify(),notifyAll()是Object类的方法,sleep()和yield()是Thread类的方法。 (1).常用的wait方法有wait()和wait(long timeout): void wait() 在其他线程调用此对象
2014-12-17 22:21:18 968
原创 Windows下Java环境变量的配置方法及道理
这是一个老生常谈的问题,每一个刚接触java的新手都会对java环境变量配置感到迷茫。很多的blog都关于这个问题进行了讲解,但绝大多数都停留在操作步骤上,大家跟着教程确实配置好了java的环境变量,但是却不知道那几个步骤到底是干什么用的。所以我的这一个小文章稍微深入一点,让初次配置的新手不仅能够配出java环境,同时能够知道每个环境变量是干什么的。Java环境变量配置过程如下:S
2014-12-17 12:30:53 734
转载 eclipse中的.project 和 .classpath文件的具体作用
eclipse中的.project 和 .classpath文件的具体作用.project是项目文件,项目的结构都在其中定义,比如lib的位置,src的位置,classes的位置.classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH这些文件你用文本编辑器就能察看了在一个项目中点刷新的目的是为了更新.project文件中的文件清
2014-12-16 23:12:37 607
转载 wpa_supplicant程序详解
目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络。请记住重要的一点是,对无线网络的配置是全局性的,而非针对具体的接口。 wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动。请浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络,它
2014-12-16 16:16:37 2762
原创 Android SDK版本号与API级别的对应关系以及创建工程时选择API版本的注意事项
API 3:android 1.5API 4:android 1.6API 5:android 2.0API 6:android 2.0.1API 7:android 2.1API 8:android 2.2API 9:android 2.3API 10:android 2.3.3API 11:android 3.0(这个比较重要,fragment,loader,A
2014-12-15 13:37:51 11007 1
原创 Eclipse卸载ADT插件的步骤
最近android studio1.0发布了,大家应该已经用上了吧。反正我装好了,于是我在Eclipse中卸载掉了ADT插件。鸟尽弓藏。步骤记录一下,其实摸索一下就行了的:Step 1:打开Eclipse,点击导航条中的应该是最后一项Help。Step 2:单击install new software 菜单项。Step 3:不起眼处有一个“what is already insta
2014-12-15 08:38:56 1402
转载 高富帅们的Git技巧(译)
译者序Git是一个分布式版本控制系统,拥有许多神奇而易用的特性(比如:分支),这让它可以轻松适应各种工作流程。这篇文章不涉及Git的基本使用,而是介绍了一些高级却有用的小技巧。让我们一起来看看高富帅们的Git技巧,准备好逆袭吧!作者:Chris Kelly 译者:栖邀原文链接:http://net.tutsplus.com/tutorials/tools-and-tips/git-
2014-12-10 15:06:36 1058
转载 在Mac上配置GitHub的SSH key
先简单介绍一下Git和Github,以下文字来源于维基百科。Git是用于Linux内核开发的版本控制工具。与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge t
2014-12-09 11:40:49 7023
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人