1.Test.java:
public native void test();
2.Testjni.cpp
#include <jni.h>
#include <android/log.h>
#define LOG_TAG "Testjni.cpp"
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
//几个常用的宏
#define NAME1(CLZ, FUN) Java_##CLZ##_##FUN
#define NAME2(CLZ, FUN) NAME1(CLZ, FUN)
#define NAME(FUN) NAME2(CLASS, FUN)
extern "C" {
JNIEXPORT void JNICALL NAME(test)(JNIEnv *env, jclass obj, jint bitRate){
LOGE("Test hello world....");
}
}
3.Android.mk
// 追加下面:指明1中Test.java的包名和类名(注:以后包名或类名有更改时,只需要更改下面语句即可)
LOCAL_CFLAGS := -DCLASS=包名_类名
此文参考该开源项目:https://github.com/tewilove/faplayer
前阵子做飞思卡尔BootLoad的时候发现,switch case的秘密。
当他的case数小于等于5的时候,采用局部变量的形式跳转。
而当他大于5时,他会建一个全局的跳转表实现跳转。这样,
如果我们做bootLoad 为了方便或者某些特定的情况下,我们
没有建立MMU,不进行全局区的管理,只用栈(cpu自己管理和
释放),就会出现编译失败。解决办法就是建立内存管理,或者
使用if else代替。
在美国卖楼、在芬兰裁员的诺基亚,加大中国的投资战略。最近,全球最为领先的创新中心低调落户北京亦庄经济技术开发区。据介绍,目前诺基亚在全球主要有两大研发中心,一个位于芬兰总部,另一个就在北京。其中总部的主要负责高端产品的研发,而北京研发中心主要研发面向新兴市场的产品。
此前,诺基亚以良好的体验性占据了中国三分之一的手机市场销量。据说当年有2.5亿用户。但是,塞班操作系统落后,一直没有一款类似iPhone具有杀伤力的 手机出现,导致品牌逐渐落后于苹果和谷歌。而芬兰管理层年龄偏大,管理陈旧,急需要一位创新领袖来拯救中国市场。此时,埃洛普来了。
如今,中国3G逐渐发展起来,互联网手机、智能手机将是年轻人所爱。而“中华酷联”发力,小米、360搅局,中国智能手机市场正在被瓜分,尽管诺基亚联合微软以及中国三大电信运营商推诺基亚Lumia,是否能在中国立足,需要新“思路”。
目前,诺基亚CEO史蒂芬埃洛普(Stephen Elop)试图通过中国市场拯救败局,但是,在与微软WP手机的合作过程中,一旦出现闪失,可能帅位难保。诺基亚大举进攻中国,仍然有点晚了。