移动地理信息系统学习笔记

移动地理信息系统学习笔记

这是我的移动地理信息系统课程学习笔记,授课教师:杨先生。

本人联系邮箱(2020年前有效):[email protected]

github:wsqstar

在阅读参考本笔记之前,请明确本手册学习环境与你自己学习环境的差异。

变量名称 内容
基础无关变量 win10系统,i7处理器6700HQ
基础相关变量 java10、android studio 3.0.1(2018年9月,最新版)
百度变量 百度lbs服务版本:2018年9月特性:ak同时要求开发版(debug)SHA1以及发布版(release)SHA1。(不提交两个的话会出错,2017年还仅要求一个SHA1)

更新更快的有道云笔记: http://note.youdao.com/noteshare?id=df5b1feb9470e13d6f5addfd4b446e39&sub=B4906B8DDCFA4DBE890CB62C4337A23D

以下正文:·


首先是环境的配置:

注意:部分使用的函数出现变化。后文有专门介绍变化的函数专题。

步骤

简化步骤示意

配置jdk并检查 → 配置IDE以及模拟器 →新建project并获取SHA1release以及debug版本 →例行配置,包括解决依赖包冲突等→开始编程

其中配置jdk并检查 → 配置IDE以及模拟器永久性配置,在一个电脑上配置好就ok。 每次新建项目,尤其是关于使用百度LBS服务的,需要不一样的AK。

作业与实习

第一次作业 获取百度地图

要求:
使用百度sdk,在手机上显示百度地图,做到打开就是天安们广场即可。

步骤记录与反思

待续

第二次作业 获取地址

要求:
使用百度sdk,在手机上显示百度地图,做到打开就是天安们广场即可。

步骤记录与反思

目前已经完成基本操作,根据网络的例子,完成了基本的Locater,但是感觉不如按照PPT上来一个,于是就有了Locater2的实施。

  • 登陆API控制台,配置应用
  • CMD获取开发SHA1,新建Project选择Generate Signed APK,从而获取发布SHA1,在MainFest.xml里面获取包名,共同配置好密钥。
  • 百度地图相关下载好库文件,放到相应文件夹中

第三次作业 单车APP iBike

要求:
完成所有工程

主要流程

新建带有侧边栏的project →新建login.xml并对drawable图片、color颜色等进行配置→实现通讯并且完成注册项目→→开始编程

单车APP重要参考&入门笔记

参考案例:Android实现注册登录头像上传等功能常规开发(Android端,服务器端开发实例)https://blog.csdn.net/w690333243/article/details/72875159

参考书籍:《Android权威编程指南(第2版)》[美] Billl Phillips 等著 王明发 译

零散笔记

Android应用属于典型的事件驱动类型。为响应某个时间而创建的对象叫监听器(listener)。 监听器是实现特定监听器接口的对象,用来监听某类事件的发生。

关键知识点(Java语言基础)

匿名内部类,监听器,接口,硬编码(通常出现在DEMO上)

android:pathData

在XML文件中的,绘制矢量图像,由字母数字以及逗号空格组成。

配置xml:url is not registered

按照提示来,添加相应的

Android 动态添加布局 LinerLayout 和RelativeLayout

https://www.jianshu.com/p/e9915eec57b3

Drawable

AndroidStudio 新建不同的Drawable文件夹

https://www.cnblogs.com/yunfang/p/6600877.html

Android 图像绘制之 Drawable

https://www.jianshu.com/p/4cd87e3c43d6

android(drawable文件夹)图片适配

https://blog.csdn.net/xuaho0907/article/details/72848520

关于android:id="@+id/xx"的理解

https://www.cnblogs.com/Jasxu/p/android_id.html

https://blog.csdn.net/qq_32623363/article/details/77198546

android:id属性的内容比较特别:

例如:@+id/height

“@”符号是提示XML解析器应该把后面的字符串解析成标识符号

“+”符号代表将添加一个标识符号。

“id/”表示这个标识符号回被归类在“id”下面。

"height"是这个界面主见的“android:id”。

以后的程序中,会使用“R.id.height”来取得这个界面组件。因此"@+id/height"的意思是我们在此创建了名为“height”的标识符,可以通过这个标识符来控制所对应的界面组件,“R”类会自动配置一个地址给这个界面组件。“R”类的内容,这可以通过查看“R.java”文件得知。

@string/

https://zhidao.baidu.com/question/466419608.html

android:text="@string/bn1"

这句话指的是这个控件的文本值是bn1变量的值

string指的是res->values->strings这个位置。

所以最终解释为这个控件的文本值,为res->values->strings中变量bn1的值。

注册

也就是bn1代表注册

配置颜色文件color.xml

https://blog.csdn.net/wzygis/article/details/40585219



#FFFFFF
#FFFFF0
#FFFFE0
#FFFF00
#FFFAFA
#FFFAF0
#FFFACD
#FFF8DC
#FFF5EE
#FFF0F5
#FFEFD5
#FFEBCD
#FFE4E1
#FFE4C4
#FFE4B5
#FFDEAD
#FFDAB9
#FFD700
#FFC0CB
#FFB6C1
#FFA500
#FFA07A
#FF8C00
#FF7F50
#FF69B4
#FF6347
#FF4500
#FF1493
#FF00FF
#FF00FF
#FF0000
#FDF5E6
#FAFAD2
#FAF0E6
#FAEBD7
#FA8072
#F8F8FF
#F5FFFA
#F5F5F5
#F5F5DC
#F5DEB3
#F4A460
#F0FFFF
#F0FFF0
#F0F8FF
#F0E68C
#F08080
#EEE8AA
#EE82EE
#E9967A
#E6E6FA
#E0FFFF
#DEB887
#DDA0DD
#DCDCDC
#DC143C
#DB7093
#DAA520
#DA70D6
#D8BFD8
#D3D3D3
#D3D3D3
#D2B48C
#D2691E
#CD853F
#CD5C5C
#C71585
#C0C0C0
#BDB76B
#BC8F8F 
#BA55D3
#B8860B
#B22222
#B0E0E6
#B0C4DE
#AFEEEE
#ADFF2F
#ADD8E6
#A9A9A9
#A9A9A9
#A52A2A
#A0522D
#9932CC
#98FB98
#9400D3
#9370DB
#90EE90
#8FBC8F
#8B4513
#8B008B
#8B0000
#8A2BE2
#87CEFA
#87CEEB
#808080
#808080
#808000
#800080
#800000
#7FFFD4
#7FFF00
#7CFC00
#7B68EE
#778899
#778899
#708090
#708090
#6B8E23
#6A5ACD
#696969
#696969
#66CDAA
#6495ED
#5F9EA0
#556B2F
#4B0082
#48D1CC
#483D8B
#4682B4
#4169E1
#40E0D0
#3CB371
#32CD32
#2F4F4F
#2F4F4F
#2E8B57
#228B22
#20B2AA
#1E90FF
#191970
#00FFFF
#00FFFF
#00FF7F
#00FF00
#00FA9A
#00CED1
#00BFFF
#008B8B
#008080
#008000
#006400
#0000FF
#0000CD
#00008B
#000080
#000000


步骤记录与反思

重要的附录(按照时间梯度)

常用代码:

debug SHA1

debug的keystore文件一般位于:C:\Users\ **** \ .android目录下的debug.keystore 只需在命令行中,点定位到.android目录下( cd .android

输入

keytool -v -list -keystore debug.keystore

即可,遇到输入口令,一般默认为 android

release SHA1

在此我以Android Studio为例,现在AS菜单栏Build下Generate Signed APK ,创建签名文件 xxx .jks,注意最后勾选v1与v2,然后继续在命令行中定位到该文件所在位置

 

然后输入

keytool -v -list -keystore ***.jks

即可。

获取了这两个ak(apikey)之后,就可以在百度地图开放平台 http://lbsyun.baidu.com/apiconsole/key 点击 创建应用,注意选择android SDK,填写完成后,就可以复制api key,复制到

解决版本冲突

在app下的build.gradle文件中的dependences {}中添加如下代码:

    androidTestCompile('com.android.support:support-annotations:26.1.0') {
        force = true
    }

添加后dependences中结构类似:

dependencies {
  androidTestCompile('com.android.support:support-annotations:26.1.0') {
        force = true
    }
...
}

文件库的引用

将BaiduLBS_Android.jar文件放到Project视图的app的libs目录下,然后src\main目录里创建一个名为jniLibs的Directory,把剩下的所有文件夹复制到这里,点击Sync project按钮就完成了

关于android studio 出现Error:Execution failed for task ':app:preDebugAndroidTestBuild'. 的解决办法

出错节点: 查看app下build.gradle文件,发现并没有错误compileSdkVersion 为26,可是没有发现27.1.1版本的com.android.support:support-annotations。可是上述信息明显是版本冲突,于是在external library中寻找发现了依赖包冲突。

在app下的build.gradle文件中的dependences {}中添加如下代码:

    androidTestCompile('com.android.support:support-annotations:26.1.0') {
        force = true
    }

添加后dependences中结构类似:

dependencies {
  androidTestCompile('com.android.support:support-annotations:26.1.0') {
        force = true
    }
...
}

Android Studio Gradle Build Running 太久,各版本Gradle的下载

打开一个新项目或者网上的Demo的时候Buliding时间过长的解决方法。

报错:

Error:(4, 1) A problem occurred evaluating root project 'BaiduMapsApiDemo'.
> Failed to apply plugin [id 'com.android.application']
   > Gradle version 2.2 is required. Current version is 4.1. If using the gradle wrapper, try editing the distributionUrl in D:\code\Android\BaiduMap_AndroidSDK_v5.2.0_Sample_demo\BaiduMap_AndroidSDK_v5.2.0_Sample\BaiduMapsApiDemo\gradle\wrapper\gradle-wrapper.properties to gradle-2.2-all.zip

原因:本地缺乏对应的gradle,导致Building的时间太长,甚至一直Buiding。

解决方法一:

1.科学上网,你需要一个VPN,让你的电脑可以打开google官网。用资源管理器强制关闭Android Studio 再重新打开Android Studio

解决方法二:

  1. 打开当前项目的项目目录。在目录下的 \gradle\wrapper 目录找到 gradle-wrapper 查看该项目的gradle版本,比如我是zip

 

  1. 去https://services.gradle.org/distributions/下载相应版本的gradle,(2.2-all为2014年版本,大小大约55.9MB)将zip压缩包(不需要解压缩)放入C:\Users\Administrator.gradle\wrapper\dists\gradle-2.4.1-all(这个目录可能在不同的电脑也不一样,在这里给window用户推荐个神器Everything,快速查找文件夹与文件)目录的子目录“6r4uqcc6ovnq6ac6s0txzcpc0”(每台电脑每个版本对应子目录文件名基本都不一样)文件夹下//测试后发现,我有两个C:\Users\wsq_s.gradle\wrapper\dists\gradle-4.1-all(gradle-2.10-all),选用4.1
  2. 用资源管理器强制关闭Android Studio 再重新打开Android Studio//测试时使用正常关闭

关于Gradle版本不正确的问题

以下是报错:

Error:Gradle version 2.2 is required. Current version is 4.1. If using the gradle wrapper, try editing the distributionUrl in D:\code\Android\BaiduMap_AndroidSDK_v5.2.0_Sample_demo\BaiduMap_AndroidSDK_v5.2.0_Sample\BaiduMapsApiDemo\gradle\wrapper\gradle-wrapper.properties to gradle-2.2-all.zip

大意为:需要2.2版本的Gradle,现在的版本为4.1,如果使用那个gradle wrapper,请尝试修改***路径下面的gradle-wrapper.properties,将其中的distributionUrl 改为 gradle-2.2-all.zip的所在地址(完全路径,以zip文件结尾)

关于Error:Unsupported method: BaseConfig.getApplicationIdSuffix().即dependencies 设置版本不正确的问题

Error:Unsupported method: BaseConfig.getApplicationIdSuffix(). The version of Gradle you connect to does not support that method. To resolve the problem you can change/upgrade the target version of Gradle you connect to. Alternatively, you can ignore this exception and read other information from the model.

将 build.gradle 中的

 dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }

改为:

dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }

引用以及感谢(尚未排序)

关于android studio 出现Error:Execution failed for task ':app:preDebugAndroidTestBuild'. 的解决办法

百度地图SDK申请之获取发布版,开发版SHA1

Android Studio Gradle Build Running 太久,各版本Gradle的下载

参考案例:Android实现注册登录头像上传等功能常规开发(Android端,服务器端开发实例)

https://blog.csdn.net/w690333243/article/details/72875159

参考书籍:《Android权威编程指南(第2版)》[美] Billl Phillips 等著 王明发 译

你可能感兴趣的:(移动地理信息系统学习笔记)