Skip to content

Files

Latest commit

63c79d8 · Dec 26, 2021

History

History
547 lines (359 loc) · 17 KB

File metadata and controls

547 lines (359 loc) · 17 KB

十五、后端即服务选项

在本章中,我们将涵盖以下主题:

  • App42
  • 无止境
  • 好朋友
  • Firebase(火力基地)
  • 金维

简介

随着您的应用和用户群的增长,您可能会希望跨设备甚至跨用户连接您的应用,例如高分排行榜。你有两个选择:

  • 创建和维护您自己的服务器
  • 使用后端即服务 ( BaaS ) 提供商

作为一名移动开发人员,创建和维护 web 服务器是一项耗时的工作,可能会分散您的开发精力。

如果您不熟悉 BaaS 提供商,以下是一些背景信息:

维基百科–移动后端即服务:

https://en.wikipedia.org/wiki/Mobile_backend_as_a_service

我们将看一看几家专门针对安卓开发者的 BaaS 提供商。仅包括提供原生安卓支持和免费订阅的提供商。(不包括仅提供免费试用或付费计划的提供商。)随着您的应用超越免费层,所有这些提供商都提供更高级别的服务,每月收费各不相同。

下表提供了每个提供商提供的每月免费服务的快速比较:

|

供应者

|

每月用户

|

应用编程接口调用

|

推送通知

|

文件存储器

| | --- | --- | --- | --- | --- | | Firebase(火力基地) | 无限的 | 100 SC | 不适用的 | 1 GB | | 好朋友 | * | 20/秒 | 五百万 | 10 GB | | App42 | * | 100 万/月 | 一百万 | 1 GB | | 金维 | One thousand | * | * | 30 GB | | 无止境 | One hundred | 50/秒 | 一百万 | 20 GB |

  • =不在他们的网站上发布

不适用=功能不可用

同步连接

免责声明:上表和下表食谱的信息是从他们的公共网站上获得的,可以自行更改。众所周知,移动行业在不断变化;预计价格和服务会发生变化。仅将此信息作为起点。

最后,这并不是 BaaS 提供商的详尽清单。希望这一章能很好地介绍 BaA 可以做什么,以及如何在应用中使用 BaA。接下来的食谱将研究每个提供者,并带您完成将他们的库添加到项目中的步骤。这将为您提供服务之间的直接比较。正如您将看到的,有些服务比其他服务更容易使用,这可能是一个决定性因素。

App42

App42 是 ShepHertz 的 BaaS API 产品,ShepHertz 是多个服务的云提供商,包括游戏平台、平台即服务和营销分析。他们有非常丰富的功能集,包括许多对游戏特别有用的服务。

App42 Android SDK 支持以下功能:

  • 用户服务程序
  • 存储服务
  • 自定义代码服务
  • 推送通知服务
  • 活动服务
  • 礼品管理服务
  • 计时器服务
  • 社会公益服务
  • 空调测试服务
  • 好友服务
  • 头像服务
  • 成就服务
  • 排行榜服务
  • 奖励服务
  • 上传服务
  • 画廊服务
  • 地理服务
  • 对话服务
  • 审查服务
  • 手推车服务
  • 目录服务
  • 信息服务
  • 推荐服务
  • 电子邮件服务
  • 日志服务

要注册 App42/ShepHertz,请访问以下链接:

https://apphq.shephertz.com/register

下面是 App4 注册屏幕截图:

App42

做好准备

在 Android Studio 中创建新的项目,并将其称为App42。当提示输入活动类型时,使用默认的电话&平板电脑选项并选择空活动

从以下链接下载并提取 App42 SDK:

https://github . com/shephertz/App42 _ ANDROID _ SDK/archive/master . zip

创建您的 App42 帐户后(参见前面的链接),登录到 AppHQ 管理控制台,并注册您的应用。你需要密钥和密码。

怎么做...

要将对 App42 的支持添加到您的项目中,首先打开安卓清单,并按照以下步骤操作:

  1. 添加以下权限:

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  2. 在文件浏览器中打开以下文件夹:<project folder>\App42\app\libs(如果libs文件夹不存在,创建它)并将App42_ANDROID-CAMPAIGN_x.x.jar文件复制到app\libs文件夹。

  3. 打开应用模块的 Gradle 构建文件:build.gradle (Module: app)并将以下内容添加到dependencies部分:

    compile files('libs/App42_ANDROID-CAMPAIGN_x.x.jar')
  4. 打开ActivityMain.java添加如下导入:

    import com.shephertz.app42.paas.sdk.android.App42API;
  5. 将以下代码添加到onCreate()回调中:

    App42API.initialize(this, "YOUR_API_KEY", "YOUR_SECRET_KEY");
  6. 您已经准备好在设备或模拟器上运行应用。

它是如何工作的...

遗憾的是,App42 不支持 Gradle 构建格式,需要下载 JAR 文件,手动复制到\libs文件夹。

在步骤 3 中,用您下载的文件中的当前版本号替换App42_ANDROID-CAMPAIGN_x.x.jar中的x.x

将步骤 5 中的YOUR_API_KEYYOUR_SECRET_KEY替换为您在 App42 注册应用时收到的凭据。

还有更多...

下面是一个使用 App42 应用编程接口注册用户的例子:

UserService userService = App42API.buildUserService();
userService.createUser("userName", "password", "email", new App42CallBack() {
    public void onSuccess(Object response) {
        User user = (User)response;
        Log.i("UserService","userName is " + user.getUserName());
        Log.i("UserService", "emailId is " + user.getEmail());
    }
    public void onException(Exception ex) {
        System.out.println("Exception Message"+ex.getMessage());
    }
});

另见

回溯无尽

除了**(移动后端即服务,正如他们所说的那样),Backend 还提供其他几项服务,如托管、应用编程接口服务和市场。他们的 MBaaS 功能包括:**

*** 用户管理

  • 数据持久性
  • 地理定位
  • 媒体流
  • 发布/订阅消息
  • 推送通知
  • 自定义业务逻辑
  • 分析学
  • 移动代码生成

要注册 Backendless,请点击链接:

https://develop.backendless.com/#registration

这是 Backendless 注册窗口的截图:

Backendless

做好准备

在 Android Studio 中创建新的项目,并将其称为Backendless。使用默认的电话&平板选项,当提示输入活动类型时,选择空活动

您将需要一个back end帐户(见前面的链接),并通过他们的back end控制台注册您的应用。一旦您有了应用标识和密钥,请开始以下步骤。

怎么做...

要将Backendless添加到您的项目中,请打开安卓清单并按照以下步骤操作:

  1. 添加以下权限:

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  2. 打开应用模块 Gradle 构建文件:build.gradle (Module: app)并将以下内容添加到dependencies部分:

    compile 'com.backendless:android:3.0.3'
  3. 打开ActivityMain.java添加如下导入:

    import com.backendless.Backendless;
  4. 将以下代码添加到onCreate()回调中:

    String appVersion = "v1";
    Backendless.initApp(this, YOUR_APP_ID, YOUR_SECRET_KEY, appVersion);
  5. 您已经准备好在设备或模拟器上运行应用。

它是如何工作的...

将步骤 4 中的YOUR_APP_IDYOUR_SECRET_KEY替换为您从后台控制台收到的凭证。

如果你更喜欢直接下载 SDK 而不是使用 Maven 依赖,这里有:https://back end . com/SDK/Java/3 . 0 . 0/back end-SDK-Android . zip

还有更多...

这里有一个例子注册一个用户到的BackendlessUser对象:

BackendlessUser user = new BackendlessUser();
user.setEmail("<user@email>");
user.setPassword("<password>");
Backendless.UserService.register(user, new BackendlessCallback<BackendlessUser>() {
    @Override
    public void handleResponse(BackendlessUser backendlessUser) {
        Log.d("Registration", backendlessUser.getEmail() + " successfully registered");
    }
} );

另见

巴迪

Buddy 与此列表中的其他 BaaS 提供商有点不同,因为他们非常专注于连接设备和传感器。为了帮助维护隐私法规,Buddy 允许您选择在美国或欧盟托管您的数据。

好友支持常见场景如:

  • 记录度量事件
  • 发送推送通知
  • 接收并安全存储遥测数据
  • 存储和管理二进制文件
  • 关于客户如何使用应用的深度移动分析
  • 将设备或应用数据与您公司的商业智能系统集成
  • 沙盒,私人数据在您选择的地理位置。

如果您想查看或贡献好友软件开发工具包,可以通过以下 Git 命令获得源代码:

git clone https://github.com/BuddyPlatform/Buddy-Android-SDK.git

要注册好友,请点击以下链接:

https://www.buddyplatform.com/Signup

下面是好友注册的截图:

Buddy

做好准备

在安卓工作室新建一个项目,称之为Buddy。使用默认的电话&平板选项,当提示输入活动类型时,选择空活动

您将需要一个好友帐户(参见前面的链接),并且必须通过他们的仪表板注册您的应用。一旦您有了应用标识和应用密钥,请开始以下步骤。

怎么做...

要将好友添加到您的项目中,请打开安卓清单并按照以下步骤操作:

  1. 添加以下权限:

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  2. 打开应用模块 Gradle 构建文件:build.gradle (Module: app)并将以下内容添加到dependencies部分:

    compile 'com.buddy:androidsdk:+'
  3. 打开ActivityMain.java添加如下导入:

    import com.buddy.sdk.Buddy;
  4. 将以下代码添加到onCreate()回调中:

    Buddy.init(myContext, "appId", "appKey");
  5. 您已经准备好在设备或模拟器上运行应用。

它是如何工作的...

将步骤 4 中的appIdappKey替换为您从好友仪表板收到的凭据。

与大多数其他 BaaS 提供商类似,我们只需在我们的 Gradle 构建中添加对 Maven 存储库的引用。然后,我们添加一个导入并开始调用 Buddy APIs。

还有更多...

以下是向好友注册用户的示例:

Buddy.createUser("someUser", "somePassword", null, null, null, null, null, null, new BuddyCallback<User>(User.class) {
    @Override
    public void completed(BuddyResult<User> result) {
        if (result.getIsSuccess()) {
            Log.w(APP_LOG, "User created: " + result.getResult().userName);
        }
    }
});

另见

火力基地

Firebase 是主要专注于数据库功能的 BaaS 提供商。虽然它们不像大多数其他 BaA 提供商那样功能齐全,但它们在数据库方面做得很好。它们是此列表中唯一具有自动同步数据库功能的提供程序。

火炉服务包括:

  • Firebase 实时数据库
  • Firebase 身份验证
  • Firebase 宿主
  • 用户认证—电子邮件和密码、脸书、推特、GitHub 和谷歌

由于它们最近被谷歌收购,您可以期待与谷歌云解决方案的进一步集成,如您在此链接上所见:

https://cloud . Google . com/solutions/mobile/firebase-app-engine-Android-studio

要注册 Firebase,请访问此链接:

https://www.firebase.com/login/

以下是 Firebase 注册窗口的截图:

Firebase

做好准备

在安卓工作室新建一个项目,称之为Firebase。使用默认的电话&平板选项,当提示输入活动类型时,选择空活动

当你在 Firebase 注册你的应用时,你将需要 Firebase 提供的网址。

怎么做...

要将 Firebase 添加到您的项目中,首先打开安卓清单,并按照以下步骤操作:

  1. 添加以下权限:

    <uses-permission android:name="android.permission.INTERNET"/>
  2. 打开应用模块 Gradle 构建文件:build.gradle (Module: app)并将以下内容添加到dependencies部分:

    compile 'com.firebase:firebase-client-android:2.5.0+'
  3. 打开ActivityMain.java添加如下导入:

    import com.firebase.client.Firebase;
  4. 将以下代码添加到onCreate()回调中:

    Firebase.setAndroidContext(this);
    Firebase firebase = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/");
  5. 您已经准备好在设备或模拟器上运行应用。

它是如何工作的...

向您的应用添加对 Firebase 的支持是相当直接的。注册应用时用 Firebase 提供的链接替换<YOUR-FIREBASE-APP>占位符。

还有更多...

以下是向 Firebase 注册用户的示例:

firebase.createUser("bobtony@firebase.com", "correcthorsebatterystaple", new Firebase.ValueResultHandler<Map<String, Object>>() {
    @Override
    public void onSuccess(Map<String, Object> result) {
        Log.i("Firebase", "Successfully created user account with uid: " + result.get("uid"));
    }
    @Override
    public void onError(FirebaseError firebaseError) {
        // there was an error
    }
});

另见

金维

金维是最早开始提供移动后端服务的提供商之一。它们的特点包括:

  • 用户管理

  • 数据存储

  • 文件存储器

  • 推送通知

  • 社交网络整合

  • 定位服务

  • 生命周期管理

  • Versioning

    https://console.kinvey.com/sign-up 报名参加金威。

这是金维注册窗口的截图:

Kinvey

做好准备

在安卓工作室新建一个项目,称之为Kinvey。使用默认的电话&平板选项,当提示输入活动类型时,选择空活动

从以下链接下载并提取金威软件开发工具包:download.kinvey.com/Android/kinvey-android-2.10.5.zip

您将需要一个 Kinvey 帐户(参见前面的链接),并且必须通过他们的开发人员控制台注册您的应用。获得应用密钥和应用密码后,请开始以下步骤。

怎么做...

要将金维添加到您的项目中,请执行以下步骤:

  1. 将以下权限添加到安卓清单中:

    <uses-permission android:name="android.permission.INTERNET"/>
  2. 在文件浏览器中打开以下文件夹:<project folder>\Kinvey\app\libs(如果libs文件夹不存在,创建它)并将所有文件从 SDK liblibJar文件夹复制到app\libs文件夹。

  3. 打开应用模块 Gradle 构建文件:build.gradle (Module: app)并添加以下repositoriesdependencies(保留任何现有条目):

    repositories {
        flatDir {
            dirs 'libs'
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile(name:'kinvey-android-*', ext:'aar')
    }
  4. 打开MainActivity.java添加如下导入:

    import com.kinvey.android.Client;
  5. 在类声明中添加以下内容:

    final Client mKinveyClient = new mKinveyClient("your_app_key", "your_app_secret", this.getApplicationContext()).build();
  6. 您已经准备好在设备或模拟器上运行应用。

它是如何工作的...

金维不是最容易建立的 BaA,因为它不提供简单的梯度依赖。相反,您需要将它们的库直接添加到项目库中,就像我们在步骤 2 中所做的那样。

这些步骤将设置好 Kinvey 客户端,并准备好开始向您的应用添加附加功能。只需确保用您的应用凭据替换 Kinvey 客户端生成器中的占位符。

还有更多...

要验证您的设置是否正常工作,请在onCreate()方法中调用以下代码或点击按钮:

mKinveyClient.ping(new KinveyPingCallback() {
    public void onFailure(Throwable t) {
        Log.d("KinveyPingCallback", "Kinvey Ping Failed", t);
    }

    public void onSuccess(Boolean b) {
        Log.d("KinveyPingCallback", "Kinvey Ping Success");
    }
});

另见