/* jernymy 2011-12-01 * Android word encoder process, need libicuuc.so Api * just a example**//*--------------------------- tst.cpp ---------------------------*//* use dl API include file */#include <dlfcn.h>/* typedef a function pointer to pointer ucnv_convert method */#ifndef LPCSTRtypedef const char*     LPCSTR;#endif#ifndef LPSTRtypedef       char*     LPSTR;#endif#ifndef s32typedef unsigned long   s32;#endiftypedef void (*pvUcnvFunc)(LPCSTR lpcstrDstEcd, LPCSTR lpcstrSrcEcd, LPSTR lpstrOut, s32 nOutLen, LPCSTR lpstrIn, s32 nInLen, s32 *pnErrCode);/* ucnv_convert method pointer */static pvUcnvFunc g_pvUcnvConvert = NULL;/* pointer libicuuc.so dl lib */static void*      g_pvUcnvDll = NULL;/*see the source code defineint32_t  ucnv_convert(  const char *toConverterName,const char *fromConverterName,char *target,int32_t targetSize,const char *source,int32_t sourceSize,UErrorCode * err)*/void UcnvConvert(LPSTR lpstrOut, s32 nOutLen, LPCSTR lpstrIn, s32 *pnErrC){/* load so for word convert */if (NULL == g_pvUcnvDll){g_pvUcnvDll = dlopen("/system/lib/libicuuc.so", RTLD_LAZY);  }if (NULL == g_pvUcnvDll){LOGE("(NULL == g_pvUcnvDll)");return;}/* get convert Api pointer */if (NULL == g_pvUcnvConvert){/* here is Android 2.2 version, Android 2.1 version change to ucnv_convert_3_8 */g_pvUcnvConvert = (pvUcnvFunc)dlsym(g_pvUcnvDll, "ucnv_convert_4_2");}if (NULL == g_pvUcnvConvert){LOGE("(NULL == g_pvUcnvConvert)");return;}    /*     * utf8   --> the Destination encoder     * gb2312 --> the Source      encoder    **/    g_pvUcnvConvert("utf8", "gb2312", lpstrOut, nOutLen, lpstrIn, strlen(lpstrIn), pnErrC);  }/*--------------------------- tst.cpp ---------------------------*//*--------------------------- Android.mk ---------------------------*/# android for nc makefileLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)# current path, local path jni/COMN_PATH    := $(LOCAL_PATH)/../../../10-commonLOCAL_CFLAGS += -D_LINUX_ -g -fno-rtti -fno-short-enums -D_ANDROID_LOCAL_CPP_EXTENSION := .cppLOCAL_C_INCLUDES := \LOCAL_LDLIBS :=-L$(SYSROOT)/usr/lib -llog -ldlLOCAL_MODULE    := tstLOCAL_SRC_FILES := tst.cppinclude $(BUILD_SHARED_LIBRARY)/*--------------------------- Android.mk ---------------------------*/



更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. xamarin android menu的用法
  2. android本地后台服务示例
  3. android - adb命令的使用
  4. android sqlite no such table
  5. Android(安卓)RxJava:图文详解 变换操作符
  6. Android(安卓)获取SHA1以及keystore不是
  7. 拿来主义Android优秀开源项目(一)
  8. Android开发框架-架构篇
  9. Android(安卓)使用Scroller实现绚丽的Lis
  10. Android(安卓)自定义SwitchButton开关控