| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android 之一 Android Studio 安装、配置等新手入门 + 百度地图定位 + 移动摇杆 的实现 -> 正文阅读 |
|
[移动开发]Android 之一 Android Studio 安装、配置等新手入门 + 百度地图定位 + 移动摇杆 的实现 |
缘起??最新在玩一款 VR 游戏:一起来捉妖。这款游戏是使用地图进行游戏的。无奈网上找了各种工具,要么付费,要么不好使。想想自己就是个程序猿,于是乎绝对自己开发一个。 ??其实,这篇文章很早就在博客的草稿箱中,不知为何 CSDN 一直审核不过。提交审核也没有显示审核不过的具体原因!文章就是一个分享我的一个安卓开发经历,没有啥违规吧!?怪哉,怪哉! 初识 Android Studio??作为一名嵌入式软件工程师,对于移动开发可以说知之甚少,于是乎各种 Google 搜索补课。经过了解,Android 开发最开始使用 Eclipse + ADT,后来在 Android 官网找到一篇博客说,Google 将结束对 Eclipse + ADT 的开发以及停止支持,把重心完全转移到Android Studio。那我就从 Android Studio。 ??其实,在 Android Studio 刚发布的时候,我就了解过这个 IDE。当初听说谷歌发布了新的开发工具,出于好奇就下载了看了看。只是本人并不是做安卓开发的,安装后还要从谷歌下载一堆东西,感觉好麻烦也就没有做太多的了解。如今还是得继续学习一下。 ??由于我也是个移动开发的外行,因此本文并不会系统说明如何进行 Android 开发,当然,我也没有这个能力。所以,以下文章就是记录我第一次搞 APP 的一些记录。记录一下我遇到的问题及处理方法。还有就是,由于是初学,往往是一旦有问题就需要各种头脑风暴,一不留神就跑没影了!!!
安装??安装很简单,下载安装包,直接一路下一步即可!貌似 Windows 的一个最大的优点就是软件安装可以一路下一步,很少要考虑各种使用命令行从各种软件仓库进行安装! ??根据我这段时间的使用,Android 每次更新都可能出现一些列的问题,我们很有必要重点关注以下地址的内容:https://developer.android.google.cn/studio/releases
配置??这里所谓的配置主要是指更改 Android Studio 下载的各种文件的位置。如果我们不进行配置,Android Studio 会把我们需要的各种文件都放到系统盘的用户目录下。其中很多内容都会占用大量存储空间,而我之前装系统时分配的系统盘只有 100G,目前空间比较紧张(现在的开发工具是真的占空间,Visual Studio、Android Studio 就占了好几个 G,还没算他们下载的各种 SDK 和 工具),因此我选择将这些下载的内容放到一个指定的目录下。
Android SDK??要使用 Android Studio 进行 APP 的开发,必须先下载对应的 Android SDK 及配套的 SDK 工具。具体方法是:File -> Settings,如下图所示的位置选择需要的 SDK 及工具: Gradle??Android Studio 构建 APP 时,还需要使用 Gradle。大体了解了一下,就是一个构建工具。估计和 CMake 之类的类似吧!但是不知道为啥,这个玩意下载也是贼慢!解决方法可以直接从网上自己下载,然后放到 Android Studio 对应的下载目录下。 但是需要注意对应的文件夹名字! ??Gradle 不止下载慢的一批,编译一个 APP 也是够慢的!而且每次升级 Android 版本都要同步更新 Gradle 插件版本以及 Gradle 版本。下图是 Google 官方给出的两者的对应关系:
Android Studio 的项目??学习的第一步当然是建立一个默认的项目,看看它是怎么管理项目的。打开 Android Studio 建立第一个项目,主界面菜单内容是真多,看的眼花缭乱。
Java SDK??根据我的了解,Android 的开发其实是可以用很多种开发语言的。其中就可以直接使用 C / C++ 来开发 APP,使用 C / C++ 需要在 Android SDK 中下载 NDK,现在叫 NDK(Side by side)。但是,网上直接使用 C / C++ 来开发的示例、介绍文章比较少,无异于增加了我的开发难度,因此果断放弃。 ??后来,JetBrains 开发了一门兼容 Java 的新的开发语言 Kotlin。随着 Google 和 Oracle 的官司不断, Google 果断宣布将 Kotlin 作为 Android 的官方开发语言。但是,虽然说与 Java 100% 兼容,但是,好多语法都有变化,对于我来说学起来还是有些费劲的,而且,目前 Kotlin 的 APP 还不是很多(在我搞这个 APP 的时候,Kotlin 刚出没多久),因此,放弃使用 Kotlin。 ??最后决定采用 Java 进行 APP 的开发。Android APP 开发需要安装 Java SDK。同样,我对于 Java 并不了解,平时基本只用 C / C++,偶尔会用 C# 或者 Qt 开发一些小工具来辅助自己的开发工作。于是乎又是各种 Google 搜索 Java 与 Android 关系的资料。以下 3 点介绍取自于知乎网友(https://zhuanlan.zhihu.com/p/378582001):
??在安装 Java SDK 时我也遇到了一个大坑。一开始决定使用 Java 之后,就先去 Oracle 官网下载 Java SDK,结果直接下载了最新的 Java SE 16,然后编译用 Android Studio 建立的示例程序都是各种错误。。。后来才知道,每一个 Android 版本都对应一个 Java 版本,必须配合使用。 ??目前,Android APP 的开发绝大部分还在使用 Java 8,部分开始过度到 Java 11。于是又下载了 Java 8 安装,为了担心有其他影响,我直接卸载了 Java 16,此时,终于可以正常编译一些示例 APP 了。后来了解到了一些 Java 11 的语法改进感觉挺好,Android 开发也开始支持 Java 11 了,于是又下载 Java SE 11 进行了安装(同时保留了Java 8),在 APP 开发中,指定使用了 Java 11。 定位 APP原理大体了解了一下定位 APP 的开发原理。无非就是以下四个:
四种方法的难易程度也是依次降低的!
??知道了上面的实现原理接下来就是开始搞了。从头开始貌似有些难啊!抓紧去开源社区找了找。发现了不少大佬开源了一些实现方法,只是功能都不完善,仅仅是介绍了如何使用而已!在此,先感谢下面的这个几个网友:
示例不仅仅以上几个,还有很多这里就不列举了。参照以上的示例,新建工程,开始一点点写代码内容!
百度地图??开发初期,纠结到底是使用百度地图,还是高德地图,还是腾讯地图,在参考了各种示例之后,绝对采用百度地图。使用百度地图开发,开发者在使用 SDK 之前需要获取百度地图移动版开发密钥(AK),该 AK 与百度账户相关联。百度官网有详细的步骤:https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/ak。参照步骤一步一步来即可。其中有个比较麻烦的就是要获取签名信息!Android APP 必须要有签名才可以发布。这个得专门一个章节来说。
初始化百度地图??从权限的配置开始,到地图的初始化,官网有很详细的步骤:https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/showmap,我就是按照这个步骤来搞的。 初始化定位??刚开始比较纳闷,百度地图 SDK 和 百度定位 SDK 不是一个东西么?后来经过了解才知道,百度地图是由地图和定位两部分组成的,地图负责呈现我们看到的地图,定位负责是地图上显示的位置。 摇杆的实现??关于游戏摇杆,网上有很多网友搞了示例,有的设置做成了库,以供大家使用。我当初也搜集了很多摇杆的实现,但是没有一个是符合我需求的。无奈只能参考各位网友的代码,自己实现了一个: ??按键方向控制使用了 layout 布局来搞,圆形方向控制则直接使用代码来绘制的,目前还不会(也不知道能不能)直接通过 layout 布局来实现。 ??最后再用一个类处理这两种类型的方向控制以及摇杆的功能按钮就可以了。这个类就用到了 Android 的悬浮窗的设置。同时,要使用悬浮窗必须还要请求权限。 LOG 记录??第一次写 Android APP,问题一大堆,总是时不时有崩溃!最开始,在我的华为手机上用的好好的,结果后来换了个小米,安装、打开、闪退。。。一上来就凉凉崩溃了。。。一搜索才知道,国内这些手机厂商推出的安卓都是自己瞎胡搞的,APP 需要适配各家的手机系统!!!我就一个摔坏的华为,一个屌丝小米。。。 ??在了解的过程中,发现有许多现成的日志库,可以实时记录 APP 的运行状态,如果出现了问题,就可以从日志中查找原因。于是又是各种 Google,发现还真不少:Logger、xlog、微信Mars-xlog、Klog 等等。 ??直接查看各个日志库的手册,看看哪个用起来最简单,哪个更新比较活跃。最终经过一份对比,我选择了 xlog 来记录 APP 中的各种信息。配置一下就可以直接在所有文件中直接调用了: 开中的问题Compatible side by side NDK version was not found.??这个是由于默认没有安装 NDK,Android Studio 给出的一个提示,项目不使用 NDK 其实没啥影响。强迫症患者,可以考虑安装 NDK。 NDK was located by using ndk.dir property.??Build 的时候提示如下的警告: 英文说得很明白,使用 Note: Recompile with -Xlint:deprecation for details.在编译项目的时候,总是会出现如下的警告: 在项目的 build.gradle 文件中加入:
然后重新编译我们的源码,我们就可以查看到底用了哪些过时的 API 的详细信息 No version of NDK matched the requested version 21.0.6113669. Versions available locally: 21.3.6528147??最近项目升级了最新的 Gradle 插件
未完待续… 参考互联网 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/31 6:11:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |