【unity接入SDK案例】从0到1 如何接入百度地图SDK到unity中【二】


👨‍💻个人主页@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏Unity基础实战

⭐🅰️⭐



文章目录


⭐前言⭐


🎶(1) 百度地图Android SDK下载


下载入口


🎶(2) 下载Android Studio


下载入口

android studio版本是:2021.2.1.16,

  • 打开后 点击SDK Manager 我们需要更改一下SDK的安装路径

  • 选择自己新建的文件夹,更改路径

  • SDK位置已更新

  • 完成


🎶(3) Android Studio工程配置


  • Step 1 :创建一个Empty 项目:
  • 第一次创建项目会比较慢,等待加载完成即可

等待第一次加载完毕,而后部署签证

为什么要进行生成签名捆绑包

在Android开发中,部署签名和密钥库是用于对应用进行数字签名和加密的一种机制。

部署签名是通过使用开发者的私钥对应用进行签名的过程。签名后的应用可以用于发布到Google Play商店或其他渠道进行分发。签名后的应用可以确保应用的完整性和来源的真实性,防止被篡改或恶意修改。

密钥库是存储和管理密钥的文件。在Android开发中,通常使用Java密钥库(JKS)格式的文件来存储密钥。密钥库可以包含多个密钥对,每个密钥对都有一个相关的私钥和公钥。在部署签名过程中,开发者需要使用密钥库中的私钥对应用进行签名。

部署签名和密钥库在Android开发中扮演着重要的角色,不仅可以确保应用的完整性和来源的真实性,还可以保护应用的安全性。


  • 选择build - Generate Signed Bundle or APK(生成签名捆绑包或APK)
  • 此时我选择新建一个key Store
  • 选择 release版本,后点击finish

🎶(4)获取AK和SHA1


什么是AK?

在百度地图中,AK 是 Access Key 的缩写,也被称为 API Key。每个使用百度地图 API 的开发者都需要申请一个 AK,用于身份验证和授权。AK 是一个字符串,类似于一个密码,用于标识和限制对百度地图 API 的访问权限。开发者在使用百度地图 API 时,需要将自己的 AK 嵌入到 API 请求中,以正确地调用和使用地图功能。每个 AK 都有一定的访问频率和配额限制,以保障服务的稳定性和可用性。

  • 百度地图官网进行认证
  • 点击我的应用,进行新应用的创建,类型为android SDK ,名字自命名,而后填写需要的SHA1
什么是SHA1呢?

SHA 1 _哈希算法。SHA1是一种加密算法,全称是Secure Hash Algorithm 1。在Android开发中,SHA1通常用于生成密钥、认证和数据完整性检查等方面。SHA1算法会将输入的数据(例如字符串、文件等)转换为一个固定长度的哈希值,通常是160位的二进制值。这个哈希值是唯一的,相同的输入将始终生成相同的哈希值,而不同的输入生成的哈希值几乎是完全不同的。SHA1在很多场景中被广泛使用,如数字签名、密码存储、消息认证等。在Android中,SHA1也常用于在应用程序中生成唯一标识符和签名验证等方面。

那么怎么获取SHA1呢

  • 首先调式版本的SHA1,获取步骤如下:
    打开cmd -> cd.android --->keytool -list -v -keystore debug.keystore
  • 其中发布版SHA1的密钥文件是你自己创建keystore时生成的JKS文件,如何获取?见下一步
  • 在自己创建得keystore 路径中 打开DOS界面输入指令 keytool -list -v -keystore + 文件名及后缀
JKS文件和Keystore文件的区别:

JKS格式的文件和Keystore格式的文件都是用于存储密钥和证书的文件格式,但两者之间有一些区别:

  1. 文件扩展名:JKS格式的文件扩展名为.jks,而Keystore格式的文件扩展名可以是.jks、.jceks、.p12、.pfx等。
  2. 文件结构:JKS格式的文件是Java Key Store格式,是以Java KeyStore API为基础的专用格式,它可以存储多个密钥和证书,并使用别名进行引用。Keystore格式的文件可以是不同的类型,如PKCS#12、JKS等,但它们都可以包含一个或多个密钥和证书。
  3. 密钥类型:JKS格式的文件可以存储不同类型的密钥,包括私钥、公钥、对称密钥等。Keystore格式的文件也可以存储不同类型的密钥,但具体支持的密钥类型取决于文件的格式和使用的API。
  4. 兼容性:JKS格式的文件是Java特定的格式,主要用于Java应用程序和工具。Keystore格式的文件可以在不同的平台和语言中使用,因为它们可以基于公共的密钥存储标准如PKCS#12。
    总的来说,JKS格式的文件是Java特定的密钥存储格式,适用于Java环境中的应用程序和工具。而Keystore格式的文件是一种通用的密钥存储格式,可以在不同的平台和语言中使用。
  • 创建一个Unity工程,环境为安卓环境

  • 而后PackageName 要与Unity工程的PackageName保持一致

  • 提交后即可显示新建应用


🎶(5)百度SDK导入unity


  • 创建一个简易的Button按钮
  • 编写其按钮在安卓模式下的交互脚本
csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//---------------------------------------------------------------------------------------------------------------
//___________项目:       ______________
//___________功能:  按钮响应百度地图的接入
//___________创建者:_______秩沅_____
//_____________________________________
//-------------------------------------
public class Onclick : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    /// <summary>
    /// 点击按钮时调用
    /// </summary>
    public void OnButtonClick()
    {

#if UNITY_EDITOR//平台判断语句
        Debug.Log("进入编辑器模式!");
#endif

#if UNITY_ANDROID
        Debug.Log("进入安卓模式");
        var pl = new AndroidJavaClass("com.DefaultCompany.BaiduMap.UnityPlayer");
        var activity = pl.GetStatic<AndroidJavaObject>("currentActicity");
        var args = new string[2] { "param1", "param2" };
        activity.Call("Unity2AndroidFunc",args[0],args[1]);          
#endif  
    }
}

  • 在Asset文件夹下新建一个Plugins/Android文件夹,把下载的百度SDK"中的这几个文件夹拖到到这个文件夹下面

🎶(6)Unity安卓平台打包


  • step1: 首先在 Building setting ------Player setting 中设置公司名,游戏名
  • step2: 查看包名
  • step3: 打开Keystore Manager密钥库管理器新建签名

  • step4:填写发布相关(Publishing Setting)的信息

  • step5 :纹理压缩(Texture Compression)选择 ETC2

  • step6: 勾选Export Project (导出用于Android Studio 的 Gradle文件)而后点击导出 Export
  • 导出后如下所示

后续见下一章节

⭐🅰️⭐



【Unityc#专题篇】之c#进阶篇】

【Unityc#专题篇】之c#核心篇】

【Unityc#专题篇】之c#基础篇】

【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】---进阶章题单实践练习

【Unityc#专题篇】---基础章题单实践练习

【Unityc#专题篇】---核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!



相关推荐
一线灵41 分钟前
跨平台游戏引擎 Axmol-2.6.1 发布
游戏引擎
皮皮高41 分钟前
itvbox绿豆影视tvbox手机版影视APP源码分享搭建教程
android·前端·后端·开源·tv
EnzoRay1 小时前
MotionEvent
android
玲小珑2 小时前
Auto.js 入门指南(七)定时任务调度
android·前端
墨狂之逸才2 小时前
adb常用命令调试
android
YoungForYou2 小时前
Android端部署NCNN
android
移动开发者1号2 小时前
Jetpack Compose瀑布流实现方案
android·kotlin
移动开发者1号2 小时前
Android LinearLayout、FrameLayout、RelativeLayout、ConstraintLayout大混战
android·kotlin
移动开发者1号2 小时前
ListView与RecyclerView区别总结
android·kotlin
移动开发者1号3 小时前
OkHttp 3.0源码解析:从设计理念到核心实现
android·kotlin