1、任何时候不要硬编码文件路径,请使用 Android 文件系统 API 访问。
2、当使用外部存储时,必须检查外部存储的可用性
3、应用间共享文件时,不要通过放宽文件系统权限的方式去实现,而应使用
FileProvider。
4、SharedPreference 中只能存储简单数据类型(int、boolean、String 等),
复杂数据类型建议使用文件、数据库等其他方式存储。
5、SharedPreference 提 交 数 据 时 , 尽 量 使 用 Editor#apply() ,而非
Editor#commit()。一般来讲,仅当需要确定提交结果,并据此有后续操作时,才使
用 Editor#commit()
6、数据库 Cursor 必须确保使用完后关闭,以免内存泄漏。
7、多线程操作写入数据库时,需要使用事务,以免出现同步问题。
8、大数据写入数据库时,请使用事务或其他能够提高 I/O 效率的机制,保证执
行速度
9、执行 SQL 语句时,应使用 SQLiteDatabase#insert()、update()、delete(),
不要使用 SQLiteDatabase#execSQL(),以免 SQL 注入风险
10、如果 ContentProvider 管理的数据存储在 SQL 数据库中,应该避免将不受
信任的外部数据直接拼接在原始 SQL 语句中,可使用一个用于将 ? 作为可替换参
数的选择子句以及一个单独的选择参数数组,会避免 SQL 注入