继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【App图片开发快速教程】Android 集成向导

哈士奇WWW
关注TA
已关注
手记 548
粉丝 71
获赞 401

基本介绍

请参考 TuSDK 使用指南

运行环境

TuSDK for Android 支持 Android 3.0 以上版本。

体积

我们发布的 SDK 工程文件兼容了多种架构,其大小并不意味着您的应用需要多出那么大的体积。实际使用中,开发包编译后的体积约占 0.9 MB,滤镜和贴纸的资源文件约占 4.1 MB

本地的滤镜和贴纸资源可以让用户在没有网络的时候也能使用相关功能,您可以自己取舍,选择将哪些资源包含在客户端内。详情请参考 自定义滤镜 和 自定义贴纸

集成步骤

初始化并设置应用密钥

登录「控制台」,然后进入「我的应用」中创建应用,在包名处填写需要集成的项目包名,完成后即可得到该应用唯一的密钥。

若您对包名和密钥有疑问,请参考「应用包名与密钥」。

若全局 Application 对象继承自 TuSdkApplication,则在 onCreate 方法中添加初始化代码:

@Override
public void onCreate()
{
    // 初始化SDK (请前往 http://tusdk.com 获取您的 APP 开发秘钥)
    this.initPreLoader(this.getApplicationContext(), "12aa4847a3a9ce68-04-ewdjn1");
}

若全局 Application 对象不继承自 TuSdkApplication,则在 onCreate 方法中添加初始化代码:

@Override
public void onCreate()
{
    // 开发ID (请前往 http://tusdk.com 获取您的 APP 开发秘钥)
    TuSdk.init(this.getApplicationContext(), "12aa4847a3a9ce68-04-ewdjn1");
}

自定义 .so 文件路径

.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

在 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 对象,设置 allowBackuphardwareAccelerated 和 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()
{
    // 异步方式初始化滤镜管理器
    // 需要等待滤镜管理器初始化完成,才能使用所有功能
    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 目录中依赖有关的配置。

程序方法数超出 65536 限制

错误类似 UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536,解决方法请参考文档 方法数超出 65536 限制

原文链接:http://www.apkbus.com/blog-918768-68562.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP