如何让基于JNI的极简Android应用完全停止写入缓存?
如何完全阻止Android应用写入内部存储缓存?
我正在开发一款基于C++/Java(主要使用C++)的简易Android JSON编辑器,通过JNI实现Java调用C++功能。但发现即便使用最基础的代码,应用仍会向内部存储写入缓存。我需要彻底阻止缓存写入,哪怕实现难度较大也没关系。
应用基本信息
- 用途:无广告、无冗余内容的JSON编辑器
- 禁止缓存的核心原因:
- 应用本身完全不需要存储缓存
- 缓存会消耗内部存储的写入/擦除周期,这是我绝对无法接受的
- 当前状态:采用极简架构,暂未实现任何可操作功能
已尝试的解决方案
- 通过谷歌搜索相关问题
- 尽可能减少依赖的库数量
- 创建无额外业务代码的新项目测试
- 尝试移除AppCompatActivity库(删除对应的导入语句)
使用过的搜索关键词
- "how to prevent cache in Android apps"
- "disable caching in Android apps"
当前使用的代码
package com.sonicandtailscd.jsoneditor; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; import com.sonicandtailscd.jsoneditor.databinding.ActivityMainBinding; public class MainActivity extends AppCompatActivity { // 应用启动时加载'jsoneditor'库 static { System.loadLibrary("jsoneditor"); } private ActivityMainBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); // 调用Native方法示例 TextView tv = binding.sampleText; tv.setText(stringFromJNI()); } /** * 由随应用打包的'jsoneditor'Native库实现的Native方法 */ public native String stringFromJNI(); }
缓存存在的证明
手机屏幕截图显示该应用已向内部存储写入缓存
推测的缓存产生原因
AppCompatActivity 组件及Android系统本身的默认行为
内容的提问来源于stack exchange,提问作者SonicandTailsCD
相关产品推荐
相关产品推荐

