在本章中,我们将涵盖以下主题:
- 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 是 ShepHertz 的 BaaS API 产品,ShepHertz 是多个服务的云提供商,包括游戏平台、平台即服务和营销分析。他们有非常丰富的功能集,包括许多对游戏特别有用的服务。
App42 Android SDK 支持以下功能:
- 用户服务程序
- 存储服务
- 自定义代码服务
- 推送通知服务
- 活动服务
- 礼品管理服务
- 计时器服务
- 社会公益服务
- 空调测试服务
- 好友服务
- 头像服务
- 成就服务
- 排行榜服务
- 奖励服务
- 上传服务
- 画廊服务
- 地理服务
- 对话服务
- 审查服务
- 手推车服务
- 目录服务
- 信息服务
- 推荐服务
- 电子邮件服务
- 日志服务
要注册 App42/ShepHertz,请访问以下链接:
https://apphq.shephertz.com/register
下面是 App4 注册屏幕截图:
在 Android Studio 中创建新的项目,并将其称为App42
。当提示输入活动类型时,使用默认的电话&平板电脑选项并选择空活动。
从以下链接下载并提取 App42 SDK:
https://github . com/shephertz/App42 _ ANDROID _ SDK/archive/master . zip
创建您的 App42 帐户后(参见前面的链接),登录到 AppHQ 管理控制台,并注册您的应用。你需要密钥和密码。
要将对 App42 的支持添加到您的项目中,首先打开安卓清单,并按照以下步骤操作:
-
添加以下权限:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
在文件浏览器中打开以下文件夹:
<project folder>\App42\app\libs
(如果libs
文件夹不存在,创建它)并将App42_ANDROID-CAMPAIGN_x.x.jar
文件复制到app\libs
文件夹。 -
打开应用模块的 Gradle 构建文件:
build.gradle (Module: app)
并将以下内容添加到dependencies
部分:compile files('libs/App42_ANDROID-CAMPAIGN_x.x.jar')
-
打开
ActivityMain.java
添加如下导入:import com.shephertz.app42.paas.sdk.android.App42API;
-
将以下代码添加到
onCreate()
回调中:App42API.initialize(this, "YOUR_API_KEY", "YOUR_SECRET_KEY");
-
您已经准备好在设备或模拟器上运行应用。
遗憾的是,App42 不支持 Gradle 构建格式,需要下载 JAR 文件,手动复制到\libs
文件夹。
在步骤 3 中,用您下载的文件中的当前版本号替换App42_ANDROID-CAMPAIGN_x.x.jar
中的x.x
。
将步骤 5 中的YOUR_API_KEY
和YOUR_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());
}
});
- 更多信息,请参考位于http://api.shephertz.com/的 App42 网页
除了**(移动后端即服务,正如他们所说的那样),Backend 还提供其他几项服务,如托管、应用编程接口服务和市场。他们的 MBaaS 功能包括:**
*** 用户管理
- 数据持久性
- 地理定位
- 媒体流
- 发布/订阅消息
- 推送通知
- 自定义业务逻辑
- 分析学
- 移动代码生成
要注册 Backendless,请点击链接:
https://develop.backendless.com/#registration
这是 Backendless 注册窗口的截图:
在 Android Studio 中创建新的项目,并将其称为Backendless
。使用默认的电话&平板选项,当提示输入活动类型时,选择空活动。
您将需要一个back end帐户(见前面的链接),并通过他们的back end控制台注册您的应用。一旦您有了应用标识和密钥,请开始以下步骤。
要将Backendless
添加到您的项目中,请打开安卓清单并按照以下步骤操作:
-
添加以下权限:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
打开应用模块 Gradle 构建文件:
build.gradle (Module: app)
并将以下内容添加到dependencies
部分:compile 'com.backendless:android:3.0.3'
-
打开
ActivityMain.java
添加如下导入:import com.backendless.Backendless;
-
将以下代码添加到
onCreate()
回调中:String appVersion = "v1"; Backendless.initApp(this, YOUR_APP_ID, YOUR_SECRET_KEY, appVersion);
-
您已经准备好在设备或模拟器上运行应用。
将步骤 4 中的YOUR_APP_ID
和YOUR_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");
}
} );
- 更多信息,请参考 https://backendless.com/的 Backendless】网页
Buddy 与此列表中的其他 BaaS 提供商有点不同,因为他们非常专注于连接设备和传感器。为了帮助维护隐私法规,Buddy 允许您选择在美国或欧盟托管您的数据。
好友支持常见场景如:
- 记录度量事件
- 发送推送通知
- 接收并安全存储遥测数据
- 存储和管理二进制文件
- 关于客户如何使用应用的深度移动分析
- 将设备或应用数据与您公司的商业智能系统集成
- 沙盒,私人数据在您选择的地理位置。
如果您想查看或贡献好友软件开发工具包,可以通过以下 Git 命令获得源代码:
git clone https://github.com/BuddyPlatform/Buddy-Android-SDK.git
要注册好友,请点击以下链接:
https://www.buddyplatform.com/Signup
下面是好友注册的截图:
在安卓工作室新建一个项目,称之为Buddy
。使用默认的电话&平板选项,当提示输入活动类型时,选择空活动。
您将需要一个好友帐户(参见前面的链接),并且必须通过他们的仪表板注册您的应用。一旦您有了应用标识和应用密钥,请开始以下步骤。
要将好友添加到您的项目中,请打开安卓清单并按照以下步骤操作:
-
添加以下权限:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
打开应用模块 Gradle 构建文件:
build.gradle (Module: app)
并将以下内容添加到dependencies
部分:compile 'com.buddy:androidsdk:+'
-
打开
ActivityMain.java
添加如下导入:import com.buddy.sdk.Buddy;
-
将以下代码添加到
onCreate()
回调中:Buddy.init(myContext, "appId", "appKey");
-
您已经准备好在设备或模拟器上运行应用。
将步骤 4 中的appId
和appKey
替换为您从好友仪表板收到的凭据。
与大多数其他 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);
}
}
});
- 更多信息,请参考好友网页:https://buddy.com/
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 添加到您的项目中,首先打开安卓清单,并按照以下步骤操作:
-
添加以下权限:
<uses-permission android:name="android.permission.INTERNET"/>
-
打开应用模块 Gradle 构建文件:
build.gradle (Module: app)
并将以下内容添加到dependencies
部分:compile 'com.firebase:firebase-client-android:2.5.0+'
-
打开
ActivityMain.java
添加如下导入:import com.firebase.client.Firebase;
-
将以下代码添加到
onCreate()
回调中:Firebase.setAndroidContext(this); Firebase firebase = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/");
-
您已经准备好在设备或模拟器上运行应用。
向您的应用添加对 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
}
});
- 更多信息,请参考位于https://www.firebase.com/的 Firebase 网页
金维是最早开始提供移动后端服务的提供商之一。它们的特点包括:
-
用户管理
-
数据存储
-
文件存储器
-
推送通知
-
社交网络整合
-
定位服务
-
生命周期管理
-
Versioning
在 https://console.kinvey.com/sign-up 报名参加金威。
这是金维注册窗口的截图:
在安卓工作室新建一个项目,称之为Kinvey
。使用默认的电话&平板选项,当提示输入活动类型时,选择空活动。
从以下链接下载并提取金威软件开发工具包:download.kinvey.com/Android/kinvey-android-2.10.5.zip
您将需要一个 Kinvey 帐户(参见前面的链接),并且必须通过他们的开发人员控制台注册您的应用。获得应用密钥和应用密码后,请开始以下步骤。
要将金维添加到您的项目中,请执行以下步骤:
-
将以下权限添加到安卓清单中:
<uses-permission android:name="android.permission.INTERNET"/>
-
在文件浏览器中打开以下文件夹:
<project folder>\Kinvey\app\libs
(如果libs
文件夹不存在,创建它)并将所有文件从 SDKlib
和libJar
文件夹复制到app\libs
文件夹。 -
打开应用模块 Gradle 构建文件:
build.gradle (Module: app)
并添加以下repositories
和dependencies
(保留任何现有条目):repositories { flatDir { dirs 'libs' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile(name:'kinvey-android-*', ext:'aar') }
-
打开
MainActivity.java
添加如下导入:import com.kinvey.android.Client;
-
在类声明中添加以下内容:
final Client mKinveyClient = new mKinveyClient("your_app_key", "your_app_secret", this.getApplicationContext()).build();
-
您已经准备好在设备或模拟器上运行应用。
金维不是最容易建立的 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");
}
});
- 更多信息,请参考【http://www.kinvey.com/】的金威网页**