移动开发个人实习总结报告.docx
《移动开发个人实习总结报告.docx》由会员分享,可在线阅读,更多相关《移动开发个人实习总结报告.docx(35页珍藏版)》请在冰豆网上搜索。
![移动开发个人实习总结报告.docx](https://file1.bdocx.com/fileroot1/2023-3/28/de91205f-12e8-44ea-b151-96c32b4d6ab3/de91205f-12e8-44ea-b151-96c32b4d6ab31.gif)
移动开发个人实习总结报告
工作任务
实现在线地图的周边搜索及在线定位
工作实现方法
基于eclipse的XX地图AndroidAPI周边搜索的开发。
我选用了关键字搜寻的方法。
工作经历:
前面六天全部组员都在解决开发环境的问题,本人遇到了与他们不同的问题,所以多用了一天解决环境问题。
后面两天都在搜集资料和整理并分析资料。
第十天的时候才发现我的功能在网上没有关于离线地图的周边搜索例子。
所以在11天的时候就帮助组员解决一些问题,下午老师告诉我可以在在线地图上做。
还剩最后4天,我发现时间已经不怎么够用,因此就选用了基于eclipse的XX地图的开发。
在此过程中困难重重,比如代码无法理解、Java语法的不熟悉、XX地图在eclipse中的环境配置等问题。
解决方法:
通过网络查询、询问同学的方式解决。
问题1.
解决安装eclipse。
Java环境配置
∙首先,我们需要下载JDK安装包,你可以在上下载。
这个我已经下载了最新版本,上传到了我的XX云盘了,链接是:
∙然后安装jdk,在安装的过程中选择【开发工具】,记住JDK安装位置。
由于这个比较简单,就不做截图说明了。
∙安装完成之后,打开我的电脑--->属性面板
选择高级系统设置
∙选择环境变量
∙在系统变量这块进行设置:
新建系统变量:
变量名:
【JAVA_HOME】
变量值:
【C:
\ProgramFiles\Java\jdk1.7.0_51】
特别注意:
我的jdk安装在了这个位置C:
\ProgramFiles\Java\jdk1.7.0_51所以就填这个,你自己的jdk安装在了什么位置,就填什么哦!
∙在系统变量里面找到Path选择编辑:
在最后添加【\;%JAVA_HOME%\bin;】
特别注意:
在最后添加,千万不能把默认的删除哦!
如果删除了,你的部分程序就无法运行了哦!
END
验证环境变量是否配置成功:
∙在【附件】里面找到【运行】,输入【cmd】
∙再输入java
如果出现下面界面说明你已经配置好了!
你的电脑就可以运行java程序了。
Android环境搭配
1.安装JDK1.7
JDK官网
2.下载Eclipse
Eclipse官网:
http:
//www.eclipse.org/downloads/,我下载的eclipse-java-kepler-SR2-win32.zip,解压到自己的目录下即可使用,无需安装。
双击eclipse.exe即可运行。
3.安装AndroidSDK
去官网:
这个安装包中包含了SDK和Eclipse,安装包自带的Eclipse可以直接进行Android开发,无需配置。
这里,只使用解压后的sdk文件夹,将sdk存放到自己的目录下。
4.为Eclipse安装ADT插件,在线安装
启动Eclipse,点击菜单Help->InstallNewSoftware...
在弹出的菜单中,点击Add,输入名称,然后在URL中输入:
http:
//dl-
之后点击Next,选择勾选ADT和NDK插件,选择安装即可,安装过程比较慢,需要耐心等待。
按照提示一步一步安装完成后,会提示重启Eclipse。
重启后如果发现Window菜单下没有出现AVDManager菜单,则按照下面的方法操作:
Window->CustomizePerspective->CommandGroupsavailability->Availablecommandgroups->勾选AndroidSDKandAVDManager
我是将Android相关的选项都勾选了,如下图,这样Window菜单下就有AndroidSDKManager和AndroidVirtualDeviceManager菜单了。
勾选后的Window菜单项:
5.创建一个虚拟Android设备
点击Window->AndroidVirtualDeviceManager,在弹出的对话框中删除系统默认的一个虚拟设备,然后点击New来添加,填写相关参数,如下图所示:
新增虚拟Android设备后,点击Start...启动Android虚拟机,启动过程非常慢,一定要有耐心。
。
。
6.创建一个Android项目
File->New->Other,选择AndroidApplicationProject,如下图所示
根据提示创建即可,我创建的项目叫做AndroidTest,没有做任何修改,直接运行。
7.运行Android项目
待虚拟机启动好后,再运行Android程序,虚拟设备启动后的界面如下:
运行Android程序方法:
选中项目,点击菜单Run->RunAs->1AdnroidApplication,等待自动在虚拟机中运行,运行成功界面如下:
至此,Android开发环境搭建完毕!
问题2.
解决XXsdk在eclipse的环境配置。
eclipse上XX地图API使用,需要引入XX的sdk。
1、在Android开发中点击“SDK下载”,下载地图开发需要的SDK或者Demo。
Demo中XX为开发者提供了功能丰富的代码示例。
2、下载完成后,会有多个jar包和一个armabi文件夹,把jar包和armabi文件夹复制到Eclipse工程目录下的libs文件夹下。
如图:
3、Eclipse打开Windows-->Preferences-->Android-->Build,获取右侧的SHA1fingerprint值:
“3B:
BF:
6C:
48:
0B:
EE:
79。
。
。
。
。
”,以及记录自己应用程序的包名,如本文使用com.example.mapdemo.
问题3.
XXkey的申请。
访问API控制台页面,若您未登录XX账号,将会进入XX账号登录页面,如下图:
1)登陆API控制台
登录会跳转到API控制台服务,具体如下图:
2)创建应用
点击"创建应用",系统将为您弹出创建AK页面,输入应用名称,将应用类型改为:
“formobile”:
3)配置应用
在应用类型选为“formobile”后,需要配置应用的安全码,如下图所示:
4)获取安全码
输入“安全码”。
安全码的组成规则为:
Android签名证书的sha1值+“;”+packagename(即:
数字签名+分号+包名),例如:
BB:
0D:
AC:
74:
D3:
21:
E1:
43:
67:
71:
9B:
62:
91:
AF:
A1:
66:
6E:
44:
5D:
75;com.baidumap.demo
2.5.1Android签名证书的sha1值获取方式有两种:
第一种方法:
使用keytool
第1步:
运行进入控制台
第2步:
定位到.android文件夹下,输入cd.android
第3步:
输入keytool-list-v-keystoredebug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android),例如:
其中keytool为jdk自带工具;keystorefile为Android签名证书文件
第二种方法:
在adt22中直接查看
如果使用adt22,可以在eclipse中直接查看:
winows->preferance->android->build。
如下图示:
其中“SHA1fingerprint”值即为Android签名证书的sha1值
5)获取包名
包名是Android应用程序本身在AndroidManifest.xml中定义的名称,例如:
6)成功创建KEY
在输入安全码后,点击“确定”完成应用的配置工作,您将会得到一个创建的Key,请妥善保管您所申请的Key。
到这您就可以使用新Key来完成您的开发工作了。
问题4.
代码修改中的问题。
主要代码:
AndroidManifest.xml
xmlversion="1.0"encoding="utf-8"?
>
android="
package="com.example.baidumapshow"
android:
versionCode="1"
android:
versionName="1.0">
android:
minSdkVersion="19"
android:
targetSdkVersion="19"/>
--获取网络状态-->
name="android.permission.ACCESS_NETWORK_STATE"/>
--访问网络-->
name="android.permission.INTERNET"/>
--获取WiFi状态-->
name="android.permission.ACCESS_WIFI_STATE"/>
name="android.permission.CHANGE_WIFI_STATE"/>
--允许程序写入外部存储,如SD卡上写文件-->
name="android.permission.WRITE_EXTERNAL_STORAGE"/>
name="android.permission.WRITE_SETTINGS"/>
--读取电话状态-->
name="android.permission.READ_PHONE_STATE"/>
name="android.permission.CALL_PHONE"/>
--获取精确位置GPS芯片接收卫星的定位信息,定位精度达10米以内-->
name="android.permission.ACCESS_FINE_LOCATION"/>
--通过WiFi或移动基站的方式获取用户错略的经纬度信息-->
name="android.permission.ACCESS_COARSE_LOCATION"/>
--获取模拟定位信息-->
name="android.permission.ACCESS_MOCK_LOCATION"/>
name="android.permission.ACCESS_GPS"/>
android:
allowBackup="true"
android:
icon="@drawable/ic_launcher"
android:
label="@string/app_name"
android:
theme="@style/AppTheme">
android:
name="com.baidu.lbsapi.API_KEY"
android:
value="QwaNhFQ0ty2QmdYh3Nrr0gQx">//XXkey
android:
name="com.example.baidumapshow.MainActivity"
android:
label="@string/app_name">
name="android.intent.action.MAIN"/>
name="android.intent.category.LAUNCHER"/>
android:
name="com.baidu.location.f"
android:
enabled="true"
android:
process=":
remote">
布局视图代码:
activity_main.xml
android="
xmlns:
tools="
android:
id="@+id/container"
android:
layout_width="match_parent"
android:
layout_height="match_parent"
android:
background="#000000"
tools:
context="com.example.baidumapshow.MainActivity"
tools:
ignore="MergeRootFrame">
--顶部搜索-->
android:
id="@+id/MyLayout_top"
android:
orientation="horizontal"
android:
layout_width="fill_parent"
android:
layout_height="40dp"
android:
layout_alignParentTop="true"
android:
gravity="center">
android:
orientation="horizontal"
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
background="@null"
android:
padding="0dip">
id="@+id/city_edittext"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_gravity="center_vertical"
android:
layout_marginLeft="5dp"
android:
background="#ffffff"
android:
textSize="22dp"
android:
hint="输入城市"
android:
layout_weight="15"/>
id="@+id/keyword_edittext"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_gravity="center_vertical"
android:
layout_marginLeft="5dp"
android:
background="#ffffff"
android:
textSize="22dp"
android:
hint="输入关键词"
android:
layout_weight="25"/>
id="@+id/query_button"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_gravity="center_vertical"
android:
textColor="#ffffff"
android:
textSize="20dp"
android:
text="搜索"/>
--底部添加按钮-->
android:
id="@+id/MyLayout_bottom"
android:
orientation="horizontal"
android:
layout_width="fill_parent"
android:
layout_height="50dp"
android:
layout_alignParentBottom="true"
android:
gravity="center">
android:
layout_width="match_parent"
android:
layout_height="match_parent"
android:
orientation="horizontal"
android:
layout_alignParentBottom="true">
--显示图片-->
android:
id="@+id/Content_Layout"
android:
orientation="horizontal"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
layout_above="@id/MyLayout_bottom"
android:
layout_below="@id/MyLayout_top"
android:
gravity="center">
android:
id="@+id/map_view"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
clickable="true"/>
核心Java代码
MainActivity.java:
packagecom.example.baidumapshow;
importjava.util.List;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.content.Context;
importandroid.content.DialogInterface;
importandroid.graphics.Bitmap;
importandroid.graphics.BitmapFactory;
importandroid.location.Location;
importandroid.location.LocationManager;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.Toast;
importcom.baidu.location.BDLocation;
importcom.baidu.location.BDLocationListener;
importcom.baidu.location.LocationClient;
importcom.baidu.location.LocationClientOption;
importcom.baidu.mapapi.BMapManager;
importcom.baidu.mapapi.MKGeneralListener;
importcom.baidu.mapapi.map.LocationData;
importcom.baidu.mapapi.map.MKEvent;
importcom.baidu.mapapi.map.MKMapViewListener;
importcom.baidu.mapapi.map.MapController;
importcom.baidu.mapapi.map.MapPoi;
importcom.baidu.mapapi.map.MapView;
importcom.baidu.mapapi.map.MyLocationOverlay;
importcom.baidu.mapapi.map.PoiOverlay;
importcom.baidu.mapapi.map.PopupClickListener;
importcom.baidu.mapapi.map.PopupOverlay;
importcom.baidu.mapapi.