归档: 2016/10

Android 中获取当前时区和语言

国际化需求,要访问当地的时区和语言,作为参数上传服务器处理一些业务,Android手机中如果想以GMT形式(GMT+08:00)得到当前时区,如下的工具类做个记录:

AndroidStudio 2.2 更友好的支持NDK

前言之前一直在用Eclipse 做开发,直到今年年初才将项目迁移到Google 推荐的AndroidStudio上面,毕竟这是一个趋势,可谁知道事情根本没有我想的那么简单,这期间遇到了N多坑,我想这些坑可能大家也有可能遇到,不在这里详细叙述。最终一个个问题的去解决,走完了这些坑,觉得还挺好用的,Eclipse 是一个吃内存的IDE,反正我每次打开,编写代码的时候就会卡,有时候还是死掉,已无力吐糟~~,AndroidStudio的界面更人性化,除此之外,还有更多的功能。所以决定把之前在正在eclipse上开发的一个使用NDK开发的android项目转移到AndroidStudio上,在2.2之前对C/C++ 支持不是很友好,没有语法提示,编译也不方便等问题,所以期待了的Android Studio 2.2 版本稳定版终于在前段发布,一直未来得及尝试,今天把整个过程记下来,希望能给你有所帮助。 参考文献:https://developer.android.com/studio/projects/add-native-code.html#create-sources

NDK 开发(四)JNI 中局部引用、全局引用和弱全局引用

前言做过Java的朋友都知道,内存管理这一块是完全透明的,new一个类的实例时,只知道创建完这个类的实例后,会返回这个实例的一个引用,然后拿着这个引用去访问它的成员了(属性、方法),完全不用管JVM内部怎么实现的,如何为新建的对象申请内存,使用完之后如何释放内存,只需要知道有个垃圾回收器在处理这些事情就行了,然而,从Java虚拟机创建的对象传到C/C++代码时会产生引用,根据Java的垃圾回收机制,只要有引用存在就不回触发该引用所指向Java对象的垃圾回收;这些引用在JNI 中分为3种:全局引用(Global Reference)、局部引用 (Local Reference)、弱全局引用 (Week Global Reference) since JDK1.2。 正文三种引用的区别1、全局引用全局引用可以跨方法、跨线程使用,直到被开发者显式释放。类似局部引用,一个全局引用在被释放前保证引用对象不被GC回收。和局部引用不同的是,没有那么多函数能够创建全局引用。能创建全局引用的函数只有 NewGlobalRef。以下例子说明了如何使用一个全局引用。 java native方法: 12345public native void createGlobalRef();public native String getGlobalRef();public native void deleteGlobalRef();

NDK开发(三)C访问Java属性和方法

前言native方法虽然是native的,但毕竟是方法,那么就应该同其他方法一样,能够访问类的属性和方法。实际上,JNI的确可以做到这一点,我们通过几个例子来说明~

NDK开发(二)JNI传递参数和返回值

前言我们在使用 JNI 时最常问到的是 JAVA 和 C/C++之间如何传递数据,以及数据类型之间如何 互相映射。我们从整数等基本类型和数组、字符串等普通的对象类型开始讲述。至于如何传递任意对象,将在后面会更新。

Shell 脚本基础学习之函数(五)

前言Linux shell脚本基础学习我们这里就差不多讲完了,函数相信大家都不陌生吧,直接入正题吧~ 正文继上篇博客之后 shell 函数Linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell 中函数的定义格式如下: 1234function_name () { list of commands [ return value ]}

Shell 输入/输出重定向(四)

前言原本计划国庆节第一天假期休息一天,但是想想自己还有很多事情没有完成,就立马打开电脑,开始干活了。打算这7天的假期好好整理下之前学的知识和巩固练习,充实每一天,好了入正题,Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续,Here Document 是 Shell 中的一种特殊的重定向方式,用来将输入重定向到一个交互式 Shell 脚本或程序。 原文链接请标明:http://xuhaoblog.com/linux/shell-script-04.html本文出自:【stromxu的博客】