Android使用C(ndk)从资产文件夹读取文本文件

我需要从 android中的资产文件夹中读取文本文件,通过互联网进行搜索,我发现有来自android 2.3以上的asset_manager api.由于我只针对平板电脑设备,这是非常有用的.但是,由于我不是C语言的专家,我无法找到任何关于如何使用文件描述符读/写文件的例子.我发现许多使用FILE *的例子(文件指针)

My goal is to decrypt a js file from asset folder which is encrypted
using C (for securing the code),as js code is visible if end user
decompiled my apk. Because asset folder is inside zip file is it possible to do?

解决方法

这是使用asset_manager ndk lib从android资产文件夹中读取文件代码
AAssetManager* mgr = AAssetManager_fromJava(env,assetManager);
    AAsset* asset = AAssetManager_open(mgr,(const char *) js,AASSET_MODE_UNKNOWN);
    if (NULL == asset) {
        __android_log_print(ANDROID_LOG_ERROR,NF_LOG_TAG,"_ASSET_NOT_FOUND_");
        return JNI_FALSE;
    }
    long size = AAsset_getLength(asset);
    char* buffer = (char*) malloc (sizeof(char)*size);
    AAsset_read (asset,buffer,size);
    __android_log_print(ANDROID_LOG_ERROR,buffer);
    AAsset_close(asset);

添加以下行到我的Android.mk

# for native asset manager
LOCAL_LDLIBS    += -landroid

并且不要忘记源文件中的include

#include <android/asset_manager.h>

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...