Xinspace


  • 首页

  • 归档

  • 搜索

JNI技术解析第一章 JNI介绍

发表于 2015-04-22 | 分类于 Android

在学习Android NDK开发,需要了解JNI技术,在网上找到了一本书《The Java Native Interface Programmer’s Guide and Specification》,讲JDK1.0与JDK1.2的JNI接口和功能(目前最新的是JDK1.4)。我已经看完一遍了,觉得不错,决定提取重点翻译一下,留作参考。

为了方便查找对应相关知识,关于这本书的一系列文章仍按照书本的章节来写。本文的知识点和图片、示例等均来源于上面提到的书。也不知道会不会侵犯版权。

阅读前,确定你已经熟悉Java、C和C++语言的基本语法和基本用法,比如Java定义类,C++定义类和成员函数,C语言定义函数,还有控制流等。只需要非常基本的知识就可以了。

我不对你的基本知识产生任何怀疑,因为你已经熟悉了基本知识,那就继续。

阅读全文 »

原生应用创建Java虚拟机时遇到undefined reference to `JNI_CreateJavaVM'

发表于 2015-03-27 | 分类于 Android

在Linux/MacOS上写Java JNI程序。使用原生应用调用Java虚拟机的接口加载虚拟机,运行Java程序。原生应用的实现文件为invoke.c,其中需要调用JNI_CreateJavaVM()函数加载虚拟机,但是在编译invoke.c时:

gcc invoke.c

出错,错误为(在MacOS上):

Undefined symbols for architecture x86_64:
“_JNI_CreateJavaVM”, referenced from:
_main in invoke-56dc3c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

在Linux上,错误为:

undefined reference to `JNI_CreateJavaVM’

在Google上搜索了一下,发现一种解决方案,原文为英文:解决方案

阅读全文 »

c++的数组元素不能是引用类型

发表于 2015-01-25 | 分类于 Programming

这几天在看c++基础内容,看到数组的时候,书里提到数组元素的约束条件:

1.元素类型支持赋值操作。

2.元素类型支持复制。

因此,除了引用类型对象和流对象外,其他的任意内置类型和满足上述约束的类类型均能成为数组的元素。

流对象不能成为数组元素是因为它不支持复制和赋值,不满足上述的两条约束。而引用却是可以赋值和复制呀,为什么数组元素不能是引用呢?

先讲一下引用的某些特点:

1.引用是对象的另一个名字(这里的对象指内存的区域,如int所占内存4个字节)。定义一个对象的引用,该引用并不占内存空间,它只是这个对象的别名。

举个例子:

int i = 10;该语句定义变量i为整型,占用4字节内存空间,初始值是10。粗略的说,这条语句在执行时操作系统从内存中分配4字节(假如地址是0x00000000-0x00000003),将这4个字节贴一个标签,叫i(若没有标签,想要读写这4字节就只能使用二进制或十六进制的地址了,比较麻烦)。之后,若程序读写i,就代表着读写这4个字节。所以i就是这4字节对象(这个对象指内存的特定区域,并不是面向对象中的对象)的一个名字或标签。对i赋值,就会把值写入到这4个字节的对象中。通过i可以方便的访问内存中的对象。i本身不占用内存空间,i代表的对象占用4字节空间。

阅读全文 »

Linux操作系统下的屏幕录像工具推荐

发表于 2014-10-07 | 分类于 Others

Linux系统下的屏幕录像工具比较多,在谷歌上都能查到,但是我用的是istanbul,原因很简单,fedora的源中可以下载.

1.安装istanbul
$sudo yum install istanbul
2.安装完成后,打开它,在系统的左下角就会出现录像的图标.左键单击就是录像,右键是菜单.

我在安装完成后,遇到的问题,就是在录制屏幕时,录制的声音默认是麦克风的,而不是内置的音响声音.这需要设置混音器.打开混音器(即mixer,从系统设置->音频->混音器中打开),点击设置,打开音频设置对话框,然后选择音频硬件设置选项卡,按照如下图所示进行配置(这是在fedora20 kde环境下的截图):

soundcard点击ok,之后再录音就可以了.

 

上面的截图只是作为参考,可能打开的路径或者选项不一样,个人根据自己的系统相应的调整一下.

Fedora20安裝搜狗拼音輸入法

发表于 2014-09-23 | 分类于 Others

众所周知,搜狗拼音输入法是非常好用的国产输入法,因此在linux上也想装来用.可惜,目前搜狗拼音输入法只有deb包,没有rpm包,因此使用Debian系列的朋友安装很方便,但对于使用RHL系列的朋友就必须要动手自己安装了.

参考文献:http://blog.chinaunix.net/uid-23851468-id-4215194.html

下面我来说一下安装步骤哈,不是很难,安装完成后又看到了熟悉的搜狗界面了.哈哈

步骤:

如下所示的'$'符号是命令提示符,不用自己输入.

1.安装fcitx
  $sudo yum install fcitx    //这是fcitx输入法框架
  $sudo yum install kcm-fcitx   //这是fcitx配置的KDE图形界面
1.下载搜狗拼音输入法
  [http://pinyin.sogou.com/linux/](http://pinyin.sogou.com/linux/)
2.我是32位机器,下载的文件是 sogou_pinyin_linux_1.1.0.0037_i386.deb(根据自己系统而定).
  解压deb包
  $ar -x sogou_pinyin_linux_1.1.0.0037_i386.deb
  解压得到两个tar包,分别是control.tar.gz,data.tar.xz
3.解压data压缩包(这一步相当于安装搜狗输入法了)
  $sudo tar -Jxvf data.tar.xz  -C /
4.用搜狗的库覆盖掉fcitx的原生库
  $sudo cp /usr/lib/x86_64-linux-gnu/fcitx/fcitx-sogoupinyin.so  /usr/lib64/fcitx/fcitx-sogoupinyin.so
          
          
阅读全文 »

安装Eclipse的ADT插件出错

发表于 2014-09-20 | 分类于 Android

我下载的Eclipse版本是eclipse-standard 4.4,在离线安装ADT插件时,会报错,导致ADT插件安装不成功。因此特此总结以下。

1.打开eclispe

2.依次点击Help->Install New Software->Add,Name任意定,Location为http://download.eclipse.org/tools/gef/updates/releases/ 然后选择并安装GEF SDK之后,再安装ADT就不会报错了,可能会弹出警告,Ok就可以了。

 

参考文章:http://tewson.com/content/orgeclipsegef-000-required-installing-android-development-tools-eclipse-351

Fedora20搭建Android开发环境 离线安装ADT

发表于 2014-09-20 | 分类于 Android

搭建Android开发环境原本是很简单的事情,但是因为GFW把谷歌墙了之后,很多的网站都上不去,因此我花费了1天的时间才搞定。下面说说我搭建的过程。

搭建步骤如下:

1.下载JDK、eclipse、Android SDK和eclipse的ADT插件。

2.安装、配置JDK,安装ADT插件,安装和配置Android SDK。在安装ADT插件的时候可能出问题,后面会说。

3.使用Android SDK Manager 下载安装相应的包,这里可能需要翻墙或代理。

4.创建AVD,并开始编程。创建AVD的时候也可能出问题。

5.Android开发教程推荐

阅读全文 »

boa服务器移植到ARM平台并测试成功

发表于 2014-08-17 | 分类于 Programming

废话不罗嗦,直接上步骤,下面的步骤都是参考网络上的很多文章解决的,参考链接在文章最底部。

一、环境:

1.上位机:虚拟机Ubuntu-12.04

2.下位机:ARM S5PC100 Linux操作系统 jffs2文件系统

3.交叉编译工具前缀:arm-cortex_a8-linux-gnueabi-

4.上位机的工作目录:/root/Software  (boa就解压在这个目录下)

5.下位机的根文件系统在上位机中的路径:/root/nfs/rootfs/

二、下载boa

Boa官网:[http://www.boa.org](http://www.boa.org).

或者点击下面的第一个here,下载<span>boa-0.94.13.tar.gz</span> 
  • Latest Released Version (0.94.13) here (signature here),点击

    我下载的版本是是最新的,boa-0.94.13.tar.gz.

阅读全文 »

改变wordpress文章编辑器(post editor)

发表于 2014-07-30 | 分类于 Others

wordpress默认的文章编辑器我觉得不是很好用,功能太少,排版起来很麻烦。在文章涉及到图片时,后台的排版样式常常和前台不一致,要边预览边修改。有一段时间我甚至把文章编辑器改成了最原始的样式,即自己写html代码来实现排版,但是这不是省事的办法。

 

有高手为wordpress写了一款插件,名叫Kindeditor For Wordpress,我现在在用,感觉还不错。支持的功能比较多,包括word中常见的缩进,对齐,字体大小,颜色,加粗,斜体,插入表格,表情等等。对于普通的编辑博客足够了。缺点也有,表格用起来不爽,表格排版不好排,其他的都还好。

 

大家可以在后台的Plugin->Add New,然后搜索Kindeditor For Wordpress,找到后,立即安装,然后激活,插件就可以用了。

 

还可以在后台->Settings->Kindeditor设置中勾选选项:开启前台高亮,这样后台设置高亮的话,前台也会显示出来。

WordPress禁止fongs.googleapis.com,加快博客访问速度

发表于 2014-07-28 | 分类于 Others

当打开WordPress博客时,会看到浏览器连接到fongs.googleaips.com。这是谷歌的字库服务器,但是对我们来说没有多大的用处,特别是现在这段时间谷歌的一切都屏蔽了,所以如果博客自动连接访问这个服务器资源的话,访问博客的速度就会大大下降。所以,提高访问速度,就要禁止博客访问这个网站,下面来说一下如何做。

1.如果你博客放在了云服务器或VPS上,那么远程登录服务器。如果你的博客放在了虚拟空间上,那么进入控制面板(一般为cPanel)。

2.进入博客所在的目录,假设目录为blog。进入blog/wp-content/themes/your_theme目录,其中,your_theme是指你所用的wordpress的主题的名字。如果你不知道,可以在博客系统的后台-》Appaarence-》Themes下看到,可能你有很多个主题,但是用到的只有其中一个,记下它的名字,然后把名字带入上面的your_theme中。

3.打开functions.php文件,查找google这个关键字,就能够看到$fonts_url = add_query_arg( $query_args, “//fonts.googleapis.com/css” );这条语句,将它注释掉,也就是在这条语句最前面加//符号。

4.继续查找,如果还能找到其他的fonts.googleapis.com这样的样子的话,一起注释掉。查找注释完了之后,保存文件并退出。

5.现在重新打开浏览器访问自己的博客,一般情况下博客就不会访问fonts.googleapis.com了,因为跳过了这一步,所以速度会非常快。如果博客还要连接上面的网站,那么可能有两种可能。

5.1. 你把你正在用的博客主题搞错了,我第一次就是搞错了主题的名字,改了半天才发现这个问题。建议你再去后台确认一下所用的主题,以及更改文件对了没。

5.2. 如果主题没错,那么你可以去blog/wp-content/themes/your_theme/css/这个目录,查找所有的css文件中有没有fonts.googleapis.com,如果有,注释掉。保存文件并退出。

5.3. 现在重新访问博客,应该就不会访问谷歌了。

如果还有问题,可以发邮件联系我(xinspace@yeah.net)

1…8910…17

Xinspace

Personal blog from xin.

170 日志
6 分类
1 标签
© 2019 Xinspace
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4