请参考 TuSDK 使用指南。
TuSDK for Android 支持 Android 3.0 以上版本。
我们发布的 SDK 工程文件兼容了多种架构,其大小并不意味着您的应用需要多出那么大的体积。实际使用中,开发包编译后的体积约占 0.9 MB
,滤镜和贴纸的资源文件约占 4.1 MB
。
本地的滤镜和贴纸资源可以让用户在没有网络的时候也能使用相关功能,您可以自己取舍,选择将哪些资源包含在客户端内。详情请参考 自定义滤镜 和 自定义贴纸。
登录「控制台」,然后进入「我的应用」中创建应用,在包名处填写需要集成的项目包名,完成后即可得到该应用唯一的密钥。
若您对包名和密钥有疑问,请参考「应用包名与密钥」。
若全局 Application
对象继承自 TuSdkApplication
,则在 onCreate
方法中添加初始化代码:
@Override
public void onCreate()
{
TuSDKFilter.register();
// 初始化SDK (请前往 http://tusdk.com 获取您的 APP 开发秘钥)
this.initPreLoader(this.getApplicationContext(), "12aa4847a3a9ce68-04-ewdjn1");
}
若全局 Application
对象不继承自 TuSdkApplication
,则在 onCreate
方法中添加初始化代码:
@Override
public void onCreate()
{
TuSDKFilter.register();
// 开发ID (请前往 http://tusdk.com 获取您的 APP 开发秘钥)
TuSdk.init(this.getApplicationContext(), "12aa4847a3a9ce68-04-ewdjn1");
}
.so 文件默认是在 TuSDK 项目下的libs
目录下,文件名称默认为libtusdk-image.so
以及libtusdk-library.so
,如果希望自定义 .so 文件的路径,可以在调用init
方法之前使用下面的方法实现:
// 自定义 .so 文件路径,在 init 之前调用
NativeLibraryHelper.shared().mapLibrary(NativeLibType.LIB_CORE, "libtusdk-library.so 文件路径");
NativeLibraryHelper.shared().mapLibrary(NativeLibType.LIB_IMAGE, "libtusdk-image.so 文件路径");
为便于开发,可打开 TuSDK 的调试日志,在初始化密钥之前添加以下代码:
this.setEnableLog(true);
或 TuSdk.enableDebugLog(true);
发布应用时请关闭日志。
在 AndroidManifest.xml
中,首先定义程序需要的权限:
<!-- 允许应用程序写数据到外部存储设备(主要是SD卡) -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 在sdcard中创建/删除文件的权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 请求访问使用照相设备 -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- 开启闪光灯权限 -->
<uses-permission android:name="android.permission.FLASHLIGHT" />
<!-- 访问网络 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 获取WIFI信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 允许访问GPS -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
然后定义应用的全局 Application
对象,设置 allowBackup
、hardwareAccelerated
和 largeHeap
三个重要选项为 true
。
<application
android:name="org.lasque.tusdk.TuApplication"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:largeHeap="true"
</application>
在 application
节点下加入公共分组控制器。
<activity
android:name="org.lasque.tusdk.impl.activity.TuFragmentActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
在需要使用 TuSDK 的类中添加相关包,例如 import org.lasque.tusdk.core.TuSdk;
。
目前,滤镜管理器需要不到一秒钟的时间初始化。在使用滤镜前的某个界面的 initView
方法中添加以下代码,即可检查滤镜管理器的初始化是否完成。
初始化相关的文字提示可自行去掉。如果需要用到 TuSDK 的地方比较靠后,也可以不检查。
@Override
protected void initView()
{
Engine mEngine = Engine.getInstance();
mEngine.init(null);
// 异步方式初始化滤镜管理器
// 需要等待滤镜管理器初始化完成,才能使用所有功能
TuSdk.messageHub().setStatus(this, R.string.lsq_initing);
TuSdk.checkFilterManager(mFilterManagerDelegate);
}
private FilterManagerDelegate mFilterManagerDelegate = new FilterManagerDelegate()
{
@Override
public void onFilterManagerInited(FilterManager manager)
{
TuSdk.messageHub().showSuccess(DemoEntryActivity.this, R.string.lsq_inited);
}
};
目前 TuSDK for Android 包含以下外部依赖(JAR):
为了帮助您快速运行项目,这些依赖已经包含在 SDK 和示例项目中。如果遇到与您项目中依赖重复的情况,您只需要保留相关依赖其中最新的版本,删掉重复的即可。
为保证 TuSDK 在代码混淆后能正常运作,请参考开发包和示例项目中的 ProGuard
配置 proguard-project.txt
,重点看后半部分与 TuSDK libs
目录中依赖有关的配置。
错误类似 UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
,解决方法请参考文档 方法数超出 65536 限制。
©2019-2024 TUTUCLOUD. All Rights Reserved. 杭州元凡视觉智能科技有限公司 | 浙ICP备14040447号-1 | 浙公网安备33010602001649号