移動地理資訊系統學習筆記
移動地理資訊系統學習筆記
這是我的移動地理資訊系統課程學習筆記,授課教師:楊先生。
本人聯絡郵箱(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目錄下,然後srcmain目錄裡建立一個名為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:codeAndroidBaiduMap_AndroidSDK_v5.2.0_Sample_demoBaiduMap_AndroidSDK_v5.2.0_SampleBaiduMapsApiDemogradlewrappergradle-wrapper.properties to gradle-2.2-all.zip
原因:本地缺乏對應的gradle,導致Building的時間太長,甚至一直Buiding。
解決方法一:
1.科學上網,你需要一個VPN,讓你的電腦可以開啟google官網。用資源管理器強制關閉Android Studio 再重新開啟Android Studio
解決方法二:
- 開啟當前專案的專案目錄。在目錄下的 gradlewrapper 目錄找到 gradle-wrapper 檢視該專案的gradle版本,比如我是zip
- 去https://services.gradle.org/distributions/下載相應版本的gradle,(2.2-all為2014年版本,大小大約55.9MB)將zip壓縮包(不需要解壓縮)放入C:UsersAdministrator.gradlewrapperdistsgradle-2.4.1-all(這個目錄可能在不同的電腦也不一樣,在這裡給window使用者推薦個神器Everything,快速查詢資料夾與檔案)目錄的子目錄“6r4uqcc6ovnq6ac6s0txzcpc0”(每臺電腦每個版本對應子目錄檔名基本都不一樣)資料夾下//測試後發現,我有兩個C:Userswsq_s.gradlewrapperdistsgradle-4.1-all(gradle-2.10-all),選用4.1
- 用資源管理器強制關閉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:codeAndroidBaiduMap_AndroidSDK_v5.2.0_Sample_demoBaiduMap_AndroidSDK_v5.2.0_SampleBaiduMapsApiDemogradlewrappergradle-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`. 的解決辦法
Android Studio Gradle Build Running 太久,各版本Gradle的下載
參考案例:Android實現註冊登入頭像上傳等功能常規開發(Android端,伺服器端開發例項)
相關文章
- opencv學習筆記四十四:移動物件統計OpenCV筆記物件
- 分散式系統學習筆記分散式筆記
- 資訊理論理論學習筆記筆記
- 作業系統——記憶體管理學習筆記作業系統記憶體筆記
- 醫學資訊學(1)——複習筆記提綱筆記
- 醫學資訊學(2)——複習筆記提綱筆記
- 醫學資訊學(3)——複習筆記提綱筆記
- 【筆記】黃如花.資訊檢索.學習心得筆記
- 作業系統學習筆記:裝置管理作業系統筆記
- Django學習筆記《二》圖書管理系統Django筆記
- ucore作業系統學習筆記(一) ucore lab1系統啟動流程分析作業系統筆記
- 彙編學習筆記之轉移指令筆記
- 統計學習方法筆記筆記
- JDK 新特性學習筆記之模組系統JDK筆記
- 作業系統學習筆記-1:基礎概念作業系統筆記
- 數字人粒子系統學習筆記之一筆記
- Xilinx-ZYNQ7000系列-學習筆記(3):系統復位與啟動筆記
- 地理資訊網路複習(from GPT)GPT
- 資料庫學習筆記資料庫筆記
- Tomcat學習筆記—-本地部署servlet動態資源Tomcat筆記Servlet
- 學習筆記 作業系統Linux-Ubuntu 之初次新增系統呼叫筆記作業系統LinuxUbuntu
- AC 自動機學習筆記筆記
- 動態規劃學習筆記動態規劃筆記
- AC自動機學習筆記筆記
- QT學習筆記4(動畫)QT筆記動畫
- 深入理解計算機系統-學習筆記 (1)計算機筆記
- 【學習筆記】OpenMV與arduino通訊筆記UI
- numpy的學習筆記\pandas學習筆記筆記
- 地理資訊網路複習(GPT)已修改GPT
- 統計學習方法筆記-感知機學習方法筆記
- 結構動力學教材-學習筆記筆記
- 吳恩達機器學習筆記 —— 12 機器學習系統設計吳恩達機器學習筆記
- Linux系統中對中斷的處理(學習筆記)Linux筆記
- 作業系統學習筆記之初識程式和程式控制作業系統筆記
- 【學習筆記之作業系統原理篇】儲存管理筆記作業系統
- Kubernetes(k8s)學習筆記(一)——系統架構K8S筆記架構
- 吳恩達機器學習筆記 —— 17 推薦系統吳恩達機器學習筆記
- PHP 資料加密 (學習筆記)PHP加密筆記