安卓Android教程:构建大数据在云端和保护你的第一个应用程序

安全 虚拟云 浏览

小编:DR:在本教程的第二部分中,您将学习如何将Android应用程序与后端API集成。对于初学者,您将启动一个简单的restapi(您将有不同的替代方案来实现),然后您将调整您的应用程序,将

安卓Android教程:构建和保护你的第一个应用程序(第2部分)了解如何将Android应用程序与后端API集成。

DR:在本教程的第二部分中,您将学习如何将Android应用程序与后端API集成。对于初学者,您将启动一个简单的restapi(您将有不同的替代方案来实现),然后您将调整您的应用程序,将静态待办事项列表替换为该API提供的任务列表。最后,您将利用应用程序与Auth0的集成,使其使用私有(也称为安全的)端点来持久化新的待办事项。您可以在下面的GitHub存储库中找到本文开发的最终代码:Android教程,第2部分:构建和保护您的第一个应用程序。"了解如何构建和保护Android应用程序,以及如何将其与后端API集成!"在推特上留言之前,在第1部分在本教程的第一部分,您首先在Android Studio的帮助下搭建一个新的Android项目,然后配置应用程序使用Android材料组件库来增强用户界面(UI)。之后,您学习了如何在应用程序中显示待办事项的静态列表,以及如何创建一个允许用户插入新项目的表单。最后,您学习了如何使用Auth0在Android应用程序中处理用户注册和身份验证。如果您没有按照上一部分的说明进行操作,您可以派生并克隆这个GitHub存储库,以获得在那里创建的应用程序的副本。但是,在继续之前,请确保按照有关创建和配置Auth0帐户以及添加和配置Auth0依赖项部分的说明使用Auth0属性配置应用程序。启动后端API在本节中,您将在本地启动一个后端API来支持您的Android应用程序。此API将为您的应用程序提供两个端点:返回待办事项列表的公共文件;以及一个私有的,允许经过身份验证的用户向该列表添加新项。有了这个API,您将有机会学习如何在Android应用程序中处理这两种不同类型的端点(公共和私有)。要运行这个API,有两种选择。您可以克隆GitHub存储库并使用节点.js或者可以使用Docker从Docker Hub获取图像并在容器中运行。你可以选择更适合你的选择。使用节点.js和NPM来运行后端API如果您希望使用节点.js,则必须克隆此GitHub存储库,然后使用NPM安装其依赖项并在计算机中运行。以下命令将帮助您实现这一点:#克隆存储库git克隆https://github.com/auth0-blog/to-dos-api-express.git#进去吧cd到dos api express#安装依赖项npm安装#在本地运行npm启动注意:由于这个项目依赖内存中的MongoDB数据库来运行,npm install命令可能需要几秒钟的时间来下载该数据库并完成操作。使用Docker运行后端API如果你喜欢使用Docker而不是节点.js对于NPM,可以使用以下命令创建后端API的容器化实例:#使用docker运行后端APIdocker运行-p 3001:3001-d--name to dos api auth0blog/to-dos api express注意:要运行上面的命令,您需要在您的机器上安装Docker。如果您还没有这个工具,并且希望使用这种方法,请检查此资源。这个命令将下载这个Docker映像并使用它运行一个名为todosapi的容器,该容器侦听端口3001。测试后端API按照上面的说明运行后端API之后,可以向公共端点发出HTTP请求,以测试是否一切正常。例如,如果您在类Unix的系统上(例如,Ubuntu、Fedora或Mac OS),可以发出以下curl命令来测试API:#向公共端点发出GET HTTP请求卷曲本地主机:3001如果您喜欢使用图形化的HTTP客户机(如Postman或nimpositon),则必须将其配置为向发出gethttp请求:3001。在Android应用程序中使用后端API在启动后端API之后,您就可以再次开始使用Android应用程序了。在本节中,您将用API提供的列表替换应用程序加载的静态待办事项列表。要向API发出请求,您将使用一个流行的Android HTTP库Volley。所以,回到Android Studio,你将打开生成.gradle归档并更新如下:///应用程序/生成.gradle依赖关系{// ... 剩下的不动,加上。。。实施'com.android.volley:截击:1.1.1'}然后,单击IDE显示的syncnow链接来下载Volley。之后,你将打开AndroidManifest.xml归档并更新如下:您正在对此文件进行两项更改:首先,你要添加一个设置(使用权限),告诉Android设备你的应用需要互联网才能正常工作。其次,你在应用定义中添加了一个属性(usesCleartextTraffic),告诉Android设备你的应用可以使用不安全的HTTP连接。如果没有此配置,则在测试应用程序时需要在后端API中使用HTTPS。注意:强烈建议您不要发布具有usesCleartextTraffic="true"属性的产品级Android应用程序。要发布安全应用程序,您必须确保后端API可以处理HTTPS连接,并且您的应用程序使用它们。在对应用程序进行这些调整之后,下一步要做的是创建一个实体模型来表示后端API返回的待办事项。为此,在com.auth0.todo包并向其中添加以下代码://./app/src/main/java/com/auth0/todo/ToDoItem.java包裹com.auth0.托多;公共课待办事项{私有final String id;私有最终字符串消息;ToDoItem(字符串id,字符串消息){此.id=\u id;这个消息=消息;}公共字符串getId(){返回id;}公共字符串getMessage(){返回消息;}}如您所见,API返回的待办事项非常简单。它们只有两个属性:id和message。id属性是后端API上某个项的标识符,message属性是该项的描述。您将使用此实体来解析API返回的结果,并在下一节中序列化数据,同时将新项推送到其中。完成后,下一件事就是打开ToDoListAdapter类并将其代码替换为://./app/src/main/java/com/auth0/todo/util/ToDoListAdapter.java包裹com.auth0.待办事项.util;进口android.content.Context;进口android.view.layoutFlater;进口android.view.view;进口android.view.ViewGroup;进口android.widget.BaseAdapter;进口android.widget.TextView;进口com.auth0.todo.R;进口com.auth0.待办事项;进口java.util.ArrayList;进口java.util.List;公共类toolistadapter扩展了BaseAdapter{私人布局充气机;私有列表toDoList=new ArrayList();公共ToDoListaAdapter(上下文上下文上下文){充气机=LayoutFlater.from(上下文);}@覆盖公共视图getView(int position,View View,ViewGroup parent){ToDoItem ToDoItem=(ToDoItem)获取项(位置);if(视图==null){视图=充气机。充气(右。layout.to\u do\u项,空);}文本视图文本视图=视图.findViewById(右。id.to\U消息);文本视图.setText(toDoItem.getMessage());返回视图;}@覆盖公共对象getItem(int位置){返回toDoList.获取(位置);}@覆盖公共long getItemId(int位置){返回位置;}@覆盖公共int getCount(){返回toDoList.size();}public void setToDoList(列表toDoList){这是托多利斯=托多利斯;notifyDataSetChanged();}}您在这里所做的更改与用新的实体类(即用ToDoItem)替换String有关。你需要这样做是因为你的应用程序不再处理字符串列表,而是处理这个实体类的实例列表。最后,打开MainActivity类并将其代码替换为://主/主/主/主/主/主/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/右/主活动.java包裹com.auth0.托多;进口android.content.Intent;进口android.os.Bundle;进口android.view.view;进口android.widget.ListView;进口com.android.volley.RequestQueue;进口com.android.volley.响应;进口com.android.volley.截击错误;进口com.android.volley.工具箱.JsonArrayRequest;进口com.android.volley.工具箱。截击;进口com.auth0.todo.identity.AUTHAWA反应性;进口com.auth0.todo.util.ToDoListAdapter;进口org.json.JSONArray;进口org.json.JSONException;进口org.json.json对象;进口java.util.ArrayList;进口java.util.List;进口androidx.appcompat.app.AlertDialog;公共类主活动扩展了AuthAwareActivity实现回应。倾听者,响应.ErrorListener{专用Toolistadapter-toolistadapter;@覆盖受保护的void onCreate(Bundle savedInstanceState){超级创建(保存在标准状态);设置内容视图(R。layout.activity_main布局);//创建并配置适配器这是toDoListAdapter=新的ToDoListAdapter(this);ListView microstostslistview=查找视图ID(R。id.to\u do\u项);microPostsListView.setAdapter(toDoListAdapter);//发出请求字符串url="http://10.0.2.2:3001";请求队列队列=Volley.newRequestQueue(本);JsonArrayRequest microstostsrequest=新Jso

当前网址:http://www.vmchk.com//tutorials/secaidapei/2020/1019/12476.html

 
你可能喜欢的: