自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 Android: JNI动态注册

之前的例子当Java层调用本地函数的时候,他会从我们加载的库中寻找固定格式与本地函数名字对应的函数,如果没有,就会报错。如果找到,就会为这个本地方法与本地函数建立一个关联关系,其实就是保存JNI层函数的函数指针,以后再调用本地方法时,直接调用这个函数指针就可以了,当然这项工作是由虚拟机完成的, 但是这种方式在实际中用的并不多,首先这种静态注册方法,必须要用javah命令生成一个头文件,其次,本地

2015-12-17 23:05:40 613

原创 Android: JNI本地函数控制Java端代码

C语言编写的JNI本地函数控制Java端的代码,主要包括以下内容: 1创建Java对象 2访问类静态成员域 3调用类的静态方法 4访问Java对象的成员变量 5访问Java对象的方法示例程序逻辑图 整个程序冲JniFuncMain类中的createJniObject()本地方法开始,经由JNI与libjnifunc.so中命名为Java_JniFuncMain_creeateJniO

2015-12-12 15:03:10 718

原创 Android:JNI函数编码风格(C风格与C++风格)

在实现JNI本地函数,调用JN函数时,C与C++的调用方式略有不同,以GetStaticFieldID()为例,说一下两种语言调用方式的不同。jfield GetStaticFieldID(JNIEnv * env, jclass clazz, const char * name, const char * signature);在C++代码中,调用GetStaticFieldID函数时,只需要传入

2015-12-12 10:54:42 651

原创 Android :JNI基本原理

在Android Framework中,可以通过JNI有机的将Java上层与C/C++底层结合起来,JNI提供了一系列的接口,允许Java类与使用C/C++等其他编程语言编写的应用程序、模块、库进行交互操作。在Java代码中通过JNI调用C函数的步骤如下: 1. 编写Java代码 2. 编译Java代码 3. 生成C语言头文件 4. 编写C代码 5. 生成C共享库 6. 运

2015-12-09 23:14:54 800 3

原创 Android: 属性服务

属性服务的开始是伴随着init.c的启动就进行的。 init.c:system/core/init/init.c 具体init.c里面与属性服务有关的代码是:queue_builtin_action(property_init_action, "property_init");queue_builtin_action(property_service_init_action,"property

2015-12-05 15:55:22 700

原创 C++在非面向对象方面的一些特性(基本)

一、新的I/O流1 使用cin和cout分别实现输入输出操作,程序中必须嵌入头文件iostream.h2在C++中可以使用endl来代替“\n”实现输出换行二、const修饰符在C中,习惯使用#define来定义变量, #define PI 3.14159 #define R a+b printf(“%f\n”,PI*R*R);C++提供一种更灵活、更安全的方式来定义

2015-11-10 00:12:42 511

原创 shell脚本:正则表达式-初

正则表达式是一种表示方式,让我们可以查找匹配特定准则的文本,例如,"以字母a开头"。此表示法可以让我们写一个表达式,选择或匹配多个数据字符串。 除了传统的UNIX正则表达式表示法之外,POSIX正则表达式还可以做到:编写正则表达式,它表示也定于locale的字符序列顺序和等价字符编写正则表达式,而不必关心系统底层的字符集是什么很多的UNIX工具程序沿用某一种正则表达式形式来强化本身的功能。

2015-08-16 17:09:53 423

原创 shell脚本:查找文本 与 简单的grep

传统上,有三种程序,可以用来查找整个文本文件;grep 最早的文本匹配程序。使用POSIX定义的基本正则表达式(Basic Regular Expression,BRE) egrep 扩展式grep(Extend grep)。这个程序使用扩展正则表达式(Extended Regular Expression,ERE)—-这是一套功能更强大的正则表达式,使用它的代价就是会牺

2015-07-31 23:27:33 1227

原创 shell脚本学习-入门

shell脚本:一个简单的shell脚本 shell脚本:位于第一行的#! shell脚本:shell的基本元素-1 命令与参数 shell脚本:shell的基本元素-2 变量 shell脚本:shell的基本元素-3 简单的echo输出 shell脚本:shell的基本元素-4 华丽的printf输出 shell脚本:shell的基本元素-5 基本的I/O重定向 shell脚本:sh

2015-07-31 22:59:35 1486

转载 每天一个linux命令(14):less 命令

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜

2015-07-30 23:16:28 460

原创 shell脚本:简单的执行跟踪

如果我们想要知道我们的程序正在做什么,我们可以把执行跟踪(execution tracing)的功能打开。这会使得shell显示被执行到的命令,并在前面加上“+”:一个加号后面跟着一个空格 sh -x finduser 就是打开执行跟踪功能 后面 + 的就是被跟踪的命令 后面是实际输出我们也可以在脚本里面输入命令set -x命令将执行跟踪的功能打开,然后再用set +x命令关闭它,这

2015-07-29 23:19:35 813

原创 shell脚本:访问shell脚本的参数

所谓的位置参数(positional parameters)指的也就是shell脚本的命令行参数(command line arguments)。在shell函数里,它们同时也可以是函数的参数。各参数都由整数来命名。由于历史原因,当它超过9时,就应该用大括号把数字框起来:echo first arg is $1echo first arg is ${10} 此外,通过特殊变量,我们还可以取

2015-07-29 22:42:03 632

转载 每天一个linux命令(13):more命令

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。 1.命令格式: more [-dlfpcsu ] [-num ] [+/ patter

2015-07-28 22:51:24 373

原创 shell脚本:shell的基本元素-8 基本命令查找

当我们在终端输入一个命令的时候,shell会沿着查找路径$PATH来寻找命令。$PATH是一个以冒号分隔的目录列表,我们可以在列表所指定的目录下找到所要执行的命令。所找到的命令可能是编译后的可执行文件,也可能是shell脚本,从用户的角度来看,两者并无不同。 默认路径(default path)因系统而异。 名称为bin的目录用来保存可执行文件,bin是binar

2015-07-28 22:41:18 968

原创 shell脚本:shell的基本元素-7 特殊文件:/dev/null与/dev/tty

UNIX系统提供了两个对shell编程特别有用的特殊文件。第一个文件/dev/null,就是大家所熟知的位桶(bit bucket).传送到此文件的数据都会被系统丢掉。也就是说,当程序将数据写到此文件时,会认为它已完成了写入数据的操作,但实际上什么事都没做。如果需要的是命令的退出状态,而非它的输出,此功能会很有用。 相对地,读取/dev/null则会立即返回文件结束符号(end-of-lif

2015-07-28 17:09:51 698

转载 每天一个linux命令(12):tr命令

通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。 tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2

2015-07-27 22:17:31 521

原创 shell脚本:shell的基本元素-6 重定向与管道

shell提供了数种语法标记,可用来改变默认I/O的来源端与目的端。我们先介绍基本用法。 以<改变标准输入 program < file 可将program的标准输入修改为file:tr -d '\r' < dos-file.txt ...tr命令用法 以>改变标准输出 program > file 可将program的标准输出修改为file:tr

2015-07-27 22:06:24 606

转载 每天一个linux命令(11):nl命令

nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。1.命令格式: nl [选项]… [文件]… 2.命令参数: -b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);

2015-07-26 23:06:21 396

原创 shell脚本:shell的基本元素-5 基本的I/O重定向

标准输入/输出(standard I/O)可能是软件设计原则里最重要的概念了(此处的standard I/O不要与C程序库的standard I/O程序库混淆,后者的接口定义与<stdio.h>,不过此程序库的工作一样是提供类似的概念给C程序使用)。这个概念就是:程序应该有数据的来源端、数据的目的端(数据要去的地方)以及报告问题的地方,它们分别被称为标准输入(standard input)、标准输出

2015-07-25 23:09:02 665

原创 shell脚本:shell的基本元素-4 华丽的printf输出

由于echo有版本上的差异,所以导致UNIX版本间可移植性的问题,在POSIX标准化中并没有一个统一的标准,所以说各厂商必须提供说明文件,描述其echo版本的做法(现行版本的标准中,说明echo在本质上等同于System V版本,后者会处理其参数中的转义序列,但不处理-n),事实上,只要是使用最简单的形式,其echo的可移植性不会有问题。Ninth Edition Reserch UNIX系统上所采

2015-07-24 22:36:40 715

原创 shell脚本:shell的基本元素-3 简单的echo输出

echo的任务就是产生输出,可用来提示用户,或者用来产生数据供进一步处理。 原始的echo命令只会将参数打印到标准输出,参数之间以一个空格隔开,并以换行符号(newline)结尾。 $echo this is a test this is a test 不过随着时间的流逝,有各种版本的echo开发出来。BSD版本的echo看到第一个参数为-n时,会省略结尾的换行

2015-07-24 22:05:51 950

原创 树莓派获取主板温度

直接用以下的命令就可以/opt/vc/bin/vcgencmd measure_temp可以添加别名。方法是在你的根目录下面添加一个名为 .bash_aliases 的文件(必须确保是你的根目录,即提示符是pi@RaspberryPi ~ $)输入以下命令打开编辑器:sudo nano .bash_aliases然后添加以下一行字:alias temp='/opt/vc/bin/vcgencmd m

2015-07-24 09:30:06 740

转载 每天一个linux命令(10):cat 命令

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 1.命令格式: cat [选项] [文件]… 2.命令功能: cat主要有三大功能:1.一次显示整个文件:cat filename 2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件. 3.将几

2015-07-23 21:21:35 390

转载 每天一个linux命令(9):touch 命令

linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。 1.命令格式: touch [选项]… 文件… 2.命令参数: -a 或–time=atime或–time=access或–time=use  只更改存取时间。 -c 或–no-create  不建立任何文档。 -d  使用指定的日期时间,而非现在的时间。 -f

2015-07-23 20:47:48 323

原创 shell脚本:shell的基本元素-2 变量

变量(variable)就是为某个信息片段所起的名字,例如first_name或driver_lic_no.所有程序语言都会有变量,shell也不例外。每一个变量都有一个值(value),这是由我们分配给变量的内容或信息。在shell的世界里,变量值可以是(而且通常是)空值,也就是不含任何字符。这是合理的,也是常见的、好用的特性。空值就是 null. shell变量名称的开头是一个字母或下划

2015-07-23 20:36:27 727

转载 每天一个linux命令(8):cp 命令

cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。 1.命令格式: 用法: cp [选项]… [-T] 源 目的

2015-07-22 22:32:14 454

转载 shell脚本:shell的基本元素-1 命令与参数

shell最基本的工作就是执行命令。每键入一道命令,shell就会执行。就像:cd work ; ls -l whizprog.c上面例子展现了UNIX命令行的原理。 首先,格式很简单,以空白(Space键或Tab键)隔开命令行中各个组成部分。 其次,命令名称是命令行的第一个项目,通常后面会跟着选项(option),任何额外的参数(argument)都会放在选项之后。

2015-07-22 22:28:31 899

转载 每天一个linux命令(5):rm 命令

昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令。rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。 rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -r

2015-07-18 22:36:36 355

原创 shell脚本:位于第一行的#!

当shell执行一个程序时,会要求内核启动一个新的进程(process),以便在该进程里执行所指定的程序。内核知道如何为编译型程序做这件事。我们的nusers(使用者) shell脚本并非编译型程序;当shell要求内核执行它时,内核无法做这件事,并回应“not executable format file”(不是可执行的格式文件)错误信息。shell收到此错误信息时,就会知道这不是编译型程序,那么

2015-07-17 23:30:33 2950

转载 每天一个linux命令(4):mkdir命令

linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。 1.命令格式: mkdir [选项] 目录… 2.命令功能: 通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录

2015-07-17 21:08:20 337

转载 每天一个linux命令(3):pwd命令

Linux中用 pwd 命令来查看”当前工作目录“的完整路径。 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。1.命令格式: pwd [选项]2.命令功能: 查看”当前工作目录“的完整路径3.常用参数: 一般情况下不带任何参数 如果目录是链接时: 格式:pwd -P 显示出实际路

2015-07-16 22:05:57 434

原创 shell入门-一个简单的脚本

假设你想知道,现在系统上有多少人登录。who命令可以查询:$who 这里我用的树莓派只添加了一个用户,在大型的、多用户的系统上,所列出来的列表很长,不方便我们查询究竟有多少用户。对此,我们可以利用wc (字数计算)程序,它可以算出行数(line)、字数(word)与字符数(character)。此处我们只算行数$who | wc -l 计算用户个数| (管道)符号可以在两程序之间建立管

2015-07-15 00:12:32 1936

转载 每天一个linux命令(2):cd命令

Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的。 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧。 1. 命令格式: cd [目录名] 2. 命令功能: 切换当前目录至dirName 3. 常用范例 3.1 例一:进入系统根目录 命令: cd / 输出: [r

2015-07-14 22:38:59 381

转载 每天一个linux命令(1):ls命令

ls命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。ls 命令在日常的linux操作中用的很多! 1. 命令格式: ls [选项] [目录名] 2. 命令功能

2015-07-13 22:41:43 438

原创 树莓派搭建简易的NAS服务器

NAS(Network Attached Storage:网络附属存储)是一种将分布、独立的数据整合为大型、集中化管理的数据中心,以便于对不同主机和应用服务器进行访问的技术。按字面简单说就是连接在网络上, 具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远

2015-07-13 15:20:30 2882

原创 树莓派实现USB存储设备自动挂载

简单介绍实现命令行下USB存储设备自动挂载的方法, linux gnome/kde窗口环境下有移动存储的管理程序,可以实现自动挂载移动存储设备 但是在命令行下 通常需要用mount命令手动挂载USB存储设备通过给linux下的设备管理服务udev添加规则配置文件,可以实现命令行下USB存储设备自动挂载 输入命令 sudo nano /etc/udev/rules.d/10-usbstorag

2015-07-12 23:44:10 1665

原创 树莓派共享文件至pc(samba)

Linux系统可以通过samba服务实现与windows网络共享兼容的网络共享服务,嫌开着电脑共享文件太费资源的话,不妨让树莓派来实现这个网络文件共享的功能实现这个功能 需要在树莓派上面安装samba服务,接下来的操作是在假设你已经用装载了Raspbian系统的SD卡启动了树莓派,并且进入了命令行模式的前提下进行的。输入命令 sudo apt-get install samba

2015-06-12 23:32:49 2070

原创 树莓派远程桌面

使用命令sudo apt-get install tightvncserver 安装tightvnc在内的一系列包 设置password 在/etc/init.d文件夹下创建文件tightvncserver,tightvncserver文件内容如下: 为vncserver添加执行权限并设置开机启动 使用tightvnc进行远程连接,可以看到树莓派的图形桌面 默认端口是5901 输入

2015-06-11 23:00:39 1060

原创 树莓派软件更新源问题

软件更新源有时候更新不了  1、首先备份Ubuntu 11.04源列表    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (备份下当前的源列表,有备无患嘛)    2、修改更新源    sudo gedit /etc/apt/sources.list (打开Ubuntu 11.04源列表文件)

2015-06-10 22:57:16 981

原创 树莓派无线网卡连接

需要树莓派+usb无线网卡+网线前提是已经完成了网线与PC之间的通信将USB无线网卡插入树莓派任一USB接口,插上网线,接通电源;在个人电脑上通过ssh连接树莓派,默认帐号是pi,默认密码是raspberry(如何通过ssh连接树莓派,请自行网上查找,当然如果树莓派已配备好了键鼠,也可以本机操作)。连接成功后,用lsusb命令,可以看到:

2015-06-09 23:08:55 999

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除