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

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

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

本人联系邮箱(2020年前有效):wsq@cug.edu.cn

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的值。

<string name="bn1">注册</string>

也就是bn1代表注册

配置颜色文件color.xml

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

<?xml version="1.0" encoding="utf-8" ?>
<resources>
<color name="white">#FFFFFF</color><!--白色 -->
<color name="ivory">#FFFFF0</color><!--象牙色 -->
<color name="lightyellow">#FFFFE0</color><!--亮黄色-->
<color name="yellow">#FFFF00</color><!--黄色 -->
<color name="snow">#FFFAFA</color><!--雪白色 -->
<color name="floralwhite">#FFFAF0</color><!--花白色 -->
<color name="lemonchiffon">#FFFACD</color><!--柠檬绸色 -->
<color name="cornsilk">#FFF8DC</color><!--米绸色 -->
<color name="seashell">#FFF5EE</color><!--海贝色 -->
<color name="lavenderblush">#FFF0F5</color><!--淡紫红 -->
<color name="papayawhip">#FFEFD5</color><!--番木色 -->
<color name="blanchedalmond">#FFEBCD</color><!--白杏色 -->
<color name="mistyrose">#FFE4E1</color><!--浅玫瑰色 -->
<color name="bisque">#FFE4C4</color><!--桔黄色 -->
<color name="moccasin">#FFE4B5</color><!--鹿皮色 -->
<color name="navajowhite">#FFDEAD</color><!--纳瓦白 -->
<color name="peachpuff">#FFDAB9</color><!--桃色 -->
<color name="gold">#FFD700</color><!--金色 -->
<color name="pink">#FFC0CB</color><!--粉红色 -->
<color name="lightpink">#FFB6C1</color><!--亮粉红色-->
<color name="orange">#FFA500</color><!--橙色 -->
<color name="lightsalmon">#FFA07A</color><!--亮肉色 -->
<color name="darkorange">#FF8C00</color><!--暗桔黄色 -->
<color name="coral">#FF7F50</color><!--珊瑚色 -->
<color name="hotpink">#FF69B4</color><!--热粉红色 -->
<color name="tomato">#FF6347</color><!--西红柿色 -->
<color name="orangered">#FF4500</color><!--红橙色 -->
<color name="deeppink">#FF1493</color><!--深粉红色 -->
<color name="fuchsia">#FF00FF</color><!--紫红色 -->
<color name="magenta">#FF00FF</color><!--红紫色 -->
<color name="red">#FF0000</color><!--红色 -->
<color name="oldlace">#FDF5E6</color><!--老花色 -->
<color name="lightgoldenrodyellow">#FAFAD2</color><!--亮金黄色 -->
<color name="linen">#FAF0E6</color><!--亚麻色 -->
<color name="antiquewhite">#FAEBD7</color><!--古董白 -->
<color name="salmon">#FA8072</color><!--鲜肉色 -->
<color name="ghostwhite">#F8F8FF</color><!--幽灵白 -->
<color name="mintcream">#F5FFFA</color><!--薄荷色 -->
<color name="whitesmoke">#F5F5F5</color><!--烟白色 -->
<color name="beige">#F5F5DC</color><!--米色 -->
<color name="wheat">#F5DEB3</color><!--浅黄色 -->
<color name="sandybrown">#F4A460</color><!--沙褐色-->
<color name="azure">#F0FFFF</color><!--天蓝色 -->
<color name="honeydew">#F0FFF0</color><!--蜜色 -->
<color name="aliceblue">#F0F8FF</color><!--艾利斯兰 -->
<color name="khaki">#F0E68C</color><!--黄褐色 -->
<color name="lightcoral">#F08080</color><!--亮珊瑚色 -->
<color name="palegoldenrod">#EEE8AA</color><!--苍麒麟色 -->
<color name="violet">#EE82EE</color><!--紫罗兰色 -->
<color name="darksalmon">#E9967A</color><!--暗肉色 -->
<color name="lavender">#E6E6FA</color><!--淡紫色 -->
<color name="lightcyan">#E0FFFF</color><!--亮青色 -->
<color name="burlywood">#DEB887</color><!--实木色 -->
<color name="plum">#DDA0DD</color><!--洋李色 -->
<color name="gainsboro">#DCDCDC</color><!--淡灰色 -->
<color name="crimson">#DC143C</color><!--暗深红色 -->
<color name="palevioletred">#DB7093</color><!--苍紫罗兰色 -->
<color name="goldenrod">#DAA520</color><!--金麒麟色 -->
<color name="orchid">#DA70D6</color><!--淡紫色 -->
<color name="thistle">#D8BFD8</color><!--蓟色 -->
<color name="lightgray">#D3D3D3</color><!--亮灰色 -->
<color name="lightgrey">#D3D3D3</color><!--亮灰色 -->
<color name="tan">#D2B48C</color><!--茶色 -->
<color name="chocolate">#D2691E</color><!--巧可力色 -->
<color name="peru">#CD853F</color><!--秘鲁色 -->
<color name="indianred">#CD5C5C</color><!--印第安红 -->
<color name="mediumvioletred">#C71585</color><!--中紫罗兰色 -->
<color name="silver">#C0C0C0</color><!--银色 -->
<color name="darkkhaki">#BDB76B</color><!--暗黄褐色 -->
<color name="rosybrown">#BC8F8F</color> <!--褐玫瑰红 -->
<color name="mediumorchid">#BA55D3</color><!--中粉紫色 -->
<color name="darkgoldenrod">#B8860B</color><!--暗金黄色 -->
<color name="firebrick">#B22222</color><!--火砖色 -->
<color name="powderblue">#B0E0E6</color><!--粉蓝色 -->
<color name="lightsteelblue">#B0C4DE</color><!--亮钢兰色 -->
<color name="paleturquoise">#AFEEEE</color><!--苍宝石绿 -->
<color name="greenyellow">#ADFF2F</color><!--黄绿色 -->
<color name="lightblue">#ADD8E6</color><!--亮蓝色 -->
<color name="darkgray">#A9A9A9</color><!--暗灰色 -->
<color name="darkgrey">#A9A9A9</color><!--暗灰色 -->
<color name="brown">#A52A2A</color><!--褐色 -->
<color name="sienna">#A0522D</color><!--赭色 -->
<color name="darkorchid">#9932CC</color><!--暗紫色-->
<color name="palegreen">#98FB98</color><!--苍绿色 -->
<color name="darkviolet">#9400D3</color><!--暗紫罗兰色 -->
<color name="mediumpurple">#9370DB</color><!--中紫色 -->
<color name="lightgreen">#90EE90</color><!--亮绿色 -->
<color name="darkseagreen">#8FBC8F</color><!--暗海兰色 -->
<color name="saddlebrown">#8B4513</color><!--重褐色 -->
<color name="darkmagenta">#8B008B</color><!--暗洋红 -->
<color name="darkred">#8B0000</color><!--暗红色 -->
<color name="blueviolet">#8A2BE2</color><!--紫罗兰蓝色 -->
<color name="lightskyblue">#87CEFA</color><!--亮天蓝色 -->
<color name="skyblue">#87CEEB</color><!--天蓝色 -->
<color name="gray">#808080</color><!--灰色 -->
<color name="grey">#808080</color><!--灰色 -->
<color name="olive">#808000</color><!--橄榄色 -->
<color name="purple">#800080</color><!--紫色 -->
<color name="maroon">#800000</color><!--粟色 -->
<color name="aquamarine">#7FFFD4</color><!--碧绿色-->
<color name="chartreuse">#7FFF00</color><!--黄绿色 -->
<color name="lawngreen">#7CFC00</color><!--草绿色 -->
<color name="mediumslateblue">#7B68EE</color><!--中暗蓝色 -->
<color name="lightslategray">#778899</color><!--亮蓝灰 -->
<color name="lightslategrey">#778899</color><!--亮蓝灰 -->
<color name="slategray">#708090</color><!--灰石色 -->
<color name="slategrey">#708090</color><!--灰石色 -->
<color name="olivedrab">#6B8E23</color><!--深绿褐色 -->
<color name="slateblue">#6A5ACD</color><!--石蓝色 -->
<color name="dimgray">#696969</color><!--暗灰色 -->
<color name="dimgrey">#696969</color><!--暗灰色 -->
<color name="mediumaquamarine">#66CDAA</color><!--中绿色 -->
<color name="cornflowerblue">#6495ED</color><!--菊兰色 -->
<color name="cadetblue">#5F9EA0</color><!--军兰色 -->
<color name="darkolivegreen">#556B2F</color><!--暗橄榄绿  -->
<color name="indigo">#4B0082</color><!--靛青色 -->
<color name="mediumturquoise">#48D1CC</color><!--中绿宝石 -->
<color name="darkslateblue">#483D8B</color><!--暗灰蓝色 -->
<color name="steelblue">#4682B4</color><!--钢兰色 -->
<color name="royalblue">#4169E1</color><!--皇家蓝 -->
<color name="turquoise">#40E0D0</color><!--青绿色 -->
<color name="mediumseagreen">#3CB371</color><!--中海蓝 -->
<color name="limegreen">#32CD32</color><!--橙绿色 -->
<color name="darkslategray">#2F4F4F</color><!--暗瓦灰色 -->
<color name="darkslategrey">#2F4F4F</color><!--暗瓦灰色 -->
<color name="seagreen">#2E8B57</color><!--海绿色 -->
<color name="forestgreen">#228B22</color><!--森林绿 -->
<color name="lightseagreen">#20B2AA</color><!--亮海蓝色 -->
<color name="dodgerblue">#1E90FF</color><!--闪兰色 -->
<color name="midnightblue">#191970</color><!--中灰兰色 -->
<color name="aqua">#00FFFF</color><!--浅绿色 -->
<color name="cyan">#00FFFF</color><!--青色 -->
<color name="springgreen">#00FF7F</color><!--春绿色-->
<color name="lime">#00FF00</color><!--酸橙色 -->
<color name="mediumspringgreen">#00FA9A</color><!--中春绿色 -->
<color name="darkturquoise">#00CED1</color><!--暗宝石绿 -->
<color name="deepskyblue">#00BFFF</color><!--深天蓝色 -->
<color name="darkcyan">#008B8B</color><!--暗青色 -->
<color name="teal">#008080</color><!--水鸭色 -->
<color name="green">#008000</color><!--绿色 -->
<color name="darkgreen">#006400</color><!--暗绿色 -->
<color name="blue">#0000FF</color><!--蓝色 -->
<color name="mediumblue">#0000CD</color><!--中兰色 -->
<color name="darkblue">#00008B</color><!--暗蓝色 -->
<color name="navy">#000080</color><!--海军色 -->
<color name="black">#000000</color><!--黑色 -->
</resources>

步骤记录与反思

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

常用代码:

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 等著 王明发 译

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值