Doublemine

  • 首页

  • 标签

  • 归档

  • 关于

Android Studio生成Java方法描述符

发表于 2017-03-21 | 更新于 2019-07-03 | 评论数: | 阅读次数:

在日常的Android NDK开发中,会不可避免的用到C与Java代码相互调用的情况。Java调用C的方法还好,C调用Java的方法就比较麻烦了。需要编写看着就头疼的Java方法描述符才能正确的调用Java方法。

其中常见的Java方法域和描述符如下表所示:

Java类型 签名
Boolean Z
Byte B
Char C
Short S
Int I
Long J
Float F
Double D
Fully-qualified-class Lfully-qualified-class
type[] [type
Method type (arg-type)ret-type

通过上述对照表,我们可以通过C代码查找一个为String类型的Java静态字段,例如:

1
2
3
4
5
jfieldID staticJavaFieldId;
staticJavaFieldId = env->GetStaticFieldID(clazz, "mStaticField", "Ljava/lang/String;");
/**
* do something...
**/
阅读全文 »

FFmpeg折腾笔记之编译FFmpeg

发表于 2017-01-13 | 更新于 2019-07-03 | 评论数: | 阅读次数:

​ 又有很久没有写新的文章了,感觉再不写点什么东西博客草都长满了。于是打算折腾下FFmpeg,记录下折腾的过程,以熟悉Android NDK开发的基本操作。过程中有地方有错误欢迎指出,如果你对这个方面有所了解,欢迎讨论指教。

编译环境

  • FFmpeg 2.8.11 “Feynman”
  • Mac OS X
  • NDK 14.0.3770861

下载完成FFmpeg源码之后,先对源码根目录中的configure文件进行修改以适应Android平台。因为默认编译出来的动态库文件版本号在.so之后,例如:libavcodec.so.56.60.100。Android平台对这种格式不能很好的识别(如果你不介意一个一个修改文件名的话)。通过Vim或者其他文本编辑器打开configure文件的第2934行(如果你下载的FFmpeg版本和我的一样的话)将:

1
2
3
4
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'

修改为:

1
2
3
4
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'  
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'

后保存。

Mac自带VNC Client

发表于 2016-11-24 | 更新于 2019-07-03 | 评论数: | 阅读次数:

由于有需要远程VNC的需要,苦苦寻找一款Mac上比较好使的VNC Client,结果经人指点,发现原来MacOS自带了VNC Client,只是没有在Launchpad中显示罢了。使用command+space 调出Spotlight搜索键入screen Sharing.app即可。

开启Git大小写敏感

发表于 2016-11-24 | 更新于 2019-07-03 | 评论数: | 阅读次数:

最近公司开发的项目的时候,自己或者队友都经常会手抖针对某些文件的命名规范大小写写错。(毕竟入冬了。。)尤其是包名小写手抖写成大写了。。又由于我设置Android Studio新建文件自动添加到Git,一来二往,导致推上服务器之后发现自己命名有问题,顺手改成小写,这个时候问题就来了。

由于Git默认是大小写不敏感的,导致我这边虽然修改了,然而队友那边还是老样子,可能会导致后续的提交出现问题让项目无法编译通过,虽然不是什么大问题,稍微小改一下就行。然而鉴于这种问题出现了几次,每次都手动修改还是挺闹心的。我们还是来动手让Git区分大小写吧。

如果只是想应用于当前项目,那么在当前项目中使用执行以下Git命令:

1
git config core.ignorecase false

当然,如果想一劳永逸的话,推荐还是做一个全局配置:

1
git config --global core.ignorecase false

这样之后的项目都不用担心大小写都问题闹心了。

基于LeanCloud、Telegram实现多说评论推送

发表于 2016-10-26 | 更新于 2019-07-03 | 分类于 Python | 评论数: | 阅读次数:

众所周知多说评论是不支持主动推送的,也就是说如果访客主动留言评论,多说是不会给我们邮件推送提醒的。但是我们总不能每隔一段时间去检查下博客的评论留言吧,这样效率也太低了ヾ(。 ̄□ ̄)ツ゜゜゜于是趁着最近闲的蛋疼折腾出了这么个东东,能够实现访客主动评论的时候,在5分钟之内响应并通过Telegram推送到手机上方便查看和浏览。


嗯,相关的源码和基本的部署说明丢在Github上了,感兴趣的可以戳此查看。

  • Telegram Bot For DuoShuo

目前保证基本的功能能够稳定的运行,后续再添加一些其它的功能吧。嗯,详细的配置说明先挖个坑,改天再写。懒癌犯了,先休息~

1234…7
夏末

夏末

Keep fucking the world

35 日志
8 分类
43 标签
RSS
Twitter Instagram GitHub
Creative Commons
友情链接
  • Kevin
  • kisence
© 2015 — 2019 夏末
主题 — NexT.Muse
0%