使用场景
autojs 使用百度云 对象存储 BOS
效果展示
- 上传文件
- 对象存储中上传的文件
原理
- 安卓跑通对象存储的SDK, 导出dex
- autojs使用dex, 就可以使用对象存储
对象存储官方文档
https://cloud.baidu.com/doc/BOS/s/7jwvyrmnd
知识点
- 安卓申请读写sd卡权限
- AndroidManifest.xml 添加权限
- 网络安全配置允许明文传输
- 权限申请回调
- 创建子线程执行网络操作
- 多个dex合并为一个dex, 不合并dex的话, 会出错
- 添加依赖jar
代码讲解
- 安卓申请读写sd卡权限
ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);
- AndroidManifest.xml 添加权限
android:networkSecurityConfig="@xml/network_security_config"
- 网络明文传输network_security_config.xml
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config>
- 创建子线程执行网络操作
new Thread(new Runnable() { public void run() { } }).start();
- 多个dex合并为一个dex, 不合并dex的话, 会出错
手机上用mt管理器合并两个dex文件
- gradle sync之后, 点击菜单中的 build / Make Moule
dex文件位置:D:\script\asProject\UseAliOss\app\build\intermediates\dex\debug
合并的两个dex文件就在这个文件夹里面
- 合并dex之后, aj就可以导入dex文件了
let dexPath = files.path("classes_merge.dex"); runtime.loadDex(dexPath);
- 上传文件
config = new BosClientConfiguration(); config.setCredentials(new DefaultBceCredentials(AccessKeyID, SecretAccessKey)); //您的AK/SK config.setEndpoint(EndPoint); //传入Bucket所在区域域名 client = new BosClient(config); //创建BOSClient实例 // client.createBucket(BucketName); //新建一个Bucket,指定Bucket名称 file = new File("/storage/emulated/0/Geetest/sensebot_log.txt"); //指定文件路径 putObjectFromFileResponse = client.putObject(BucketName, "oldMan.txt", file);
- 添加依赖jar
app/build.gradle 文件中, 添加一下代码, 然后点击右上角sync, 会自动刚创建libs文件夹
android { ... sourceSets { main { jniLibs.srcDirs = ['libs'] } } }
- libs文件夹