1、 实 验 报 告学年学期:课程名称:移动互联网指导老师:学 院:计算机学院班 级:学 号:姓 名:湖 南 工 业 大 学实 验 报 告第 16 周实 验 名 称 移动互联网技术实验性质 必修 实验类型 综合实验课时 8实验日期、时间12月 20日实验消耗器材 台式计算机实验仪器设备CPU core i5,硬盘 500G,Window xp,相关开发工具 eclipse等实验目的通过学习基于 Android的音乐播放器制作和实现基于 Android的浏览器项目实际开发,学会了基于 Android的移动互联网技术应用软件开发能力。实验内容(实验原理、运用的理论知识和数据、算法、程序、步骤和方法)一
2、引言1编写目的从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。 2项目背景Android包含操作系统、用户界面和应用程序移动电话所使用的大部分软件,它还不存在任何以往影响移动产业创新发展的专有权障碍。Google 与手机联盟合作研发了 Android,这个联盟由:中国移动、摩托罗拉、高通、宏达电和 T-Mobile等 30多家技术和无线应用的
3、领军企业构成。Google 与运营商、设备生产商、开发商有关各方结成深层次的合作伙伴关系,希望建立标准化、开放式的移动电话软件平台,在移动行业内形成一个开放式的系统。 作为谷歌企业战略的重要组成部分,Android 将进一步实施“随时随地为每个人提供信息”这一企业宗旨。不再让移动通讯依赖与设备平台。出于这个宗旨,Android将补充,而不会代替谷歌长期以来奉行的移动发展战略:通过与各地的手机制造商、移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。 近两年来由于 Android操作系统具有良好的开放性和平台的便捷性等特点,采用 Android操作系统的手机越来越受到人们的
4、亲睐。同时 Android操作系统在智能手机领域中所扮演的角色越来越重要。3项目说明设计基于 android的手机浏览器客户端,通常一个浏览器包括前端界面、后端任务处理。手机浏览器使用 Eclipse环境进行设计。实现手机微博的基本功能,如浏览网页,刷新网页,前进,后退等。 4项目目标该阶段目的在于明确系统的数据结构和软件结构,此外总体设计还将给出内部软件和外部系统部件之间的接口定义,各个软件模块的功能说明,数据结构的细节以及具体的装配要求。实验内容(实验原理、运用的理论知识和数据、算法、程序、步骤和方法)二系统需求1界面需求(1)简洁美观(2)易于操作(3)使用方便2性能需求能够运行 and
5、roid 2.3的手机3可行性需求Android是一个包含操作系统、中介架构层及应用程序所产生出来的软件堆栈架构。由下而上,其核心为嵌入式 Linux2.6作业系统,向上搭配 Google为Android开发的类库及 Android运行时,再配合应用程序架构,来开发各种不同的应用程序。4运行环境需求软件基本运行环境为智能手机 android 操作系统 实验内容(实验原理、运用的理论知识和数据、算法、程序、步骤和方法)三功能需求(1)能够联网进行数据交换(2)能够获取网页数据并展示(3)能够对网页进行手动的刷新(4)能够前进到网页的下一页(5)能够后退到上一个访问的网页实验内容(实验原理、运用的
6、理论知识和数据、算法、程序、步骤和方法)四、实现程序界面代码:“android:padding=“0dp“android:layout_width=“0dp“android:layout_weight=“1“android:layout_height=“match_parent“/主要代码:import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.view.Menu;import android.
7、view.View;public class MainActivity extends Activity implements OnClickListener private EditText et_path;private Button bt_entry;private WebView webview;private Button bt_left;private Button bt_right;private Button bt_refresh;private ProgressBar pd;Overrideprotected void onCreate(Bundle savedInstanc
8、eState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_path = (EditText) findViewById(R.id.et_path);bt_entry = (Button) findViewById(R.id.bt_entry);bt_left = (Button) findViewById(R.id.bt_left);bt_right = (Button) findViewById(R.id.bt_right);bt_refresh = (Button) findVi
9、ewById(R.id.bt_refresh);pd = (ProgressBar) findViewById(R.id.pd);webview = (WebView) findViewById(R.id.webview);bt_entry.setOnClickListener(this);bt_left.setOnClickListener(this);bt_right.setOnClickListener(this);bt_refresh.setOnClickListener(this);initSettings();private void initSettings() webview.
10、setWebViewClient(new WebViewClient() Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) et_path.setText(url);return super.shouldOverrideUrlLoading(view, url);Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) pd.setVisibility(View.VISIBLE);super.onPage
11、Started(view, url, favicon);Overridepublic void onPageFinished(WebView view, String url) pd.setVisibility(View.GONE);super.onPageFinished(view, url);addImageClickListener(webview););webview.setWebChromeClient(new WebChromeClient() Overridepublic void onReceivedTitle(WebView view, String title) / TOD
12、O Auto-generated method stubsuper.onReceivedTitle(view, title);Overridepublic void onProgressChanged(WebView view, int newProgress) pd.setProgress(newProgress);super.onProgressChanged(view, newProgress););WebSettings settings = webview.getSettings();settings.setJavaScriptEnabled(true);webview.addJav
13、ascriptInterface(new AndroidNative(), “imagelistener“);private void addImageClickListener(WebView webView) webView.loadUrl(“javascript:(function()“+ “var objs = document.getElementsByTagName(“img“);“+ “for(var i=0;iobjs.length;i+) “ + “+ “ objsi.onclick=function() “ + “ “+ “ window.imagelistener.ope
14、nImage(this.src); “ + / 通过 js代码找到标签为 img的代码块,设置点击的监听方法与本地的 openImage方法进行连接“ “ + “ + “)()“);public class AndroidNative JavascriptInterfacepublic void openImage(String imageSrc) Toast.makeText(getApplicationContext(), imageSrc, Toast.LENGTH_SHORT).show();Intent intent = new Intent();intent.putExtra(“p
15、ath“, imageSrc);intent.setClass(getApplicationContext(), ImageActivity.class);startActivity(intent);Overridepublic boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;Overridepublic voi
16、d onClick(View v) switch (v.getId() case R.id.bt_entry:String url = “http:/“ + et_path.getText().toString();Toast.makeText(getApplicationContext(), url, Toast.LENGTH_SHORT).show();webview.loadUrl(url);break;case R.id.bt_left:Toast.makeText(getApplicationContext(), “向后“, Toast. LENGTH_SHORT).show();w
17、ebview.goBack();break;case R.id.bt_right:Toast.makeText(getApplicationContext(), “向前“, Toast. LENGTH_SHORT).show();webview.goForward();break;case R.id.bt_refresh:Toast.makeText(getApplicationContext(), “刷新“, Toast. LENGTH_SHORT).show();webview.reload();break;default:break;Overridepublic void onBackPressed() if (webview.canGoBack() webview.goBack(); else super.onBackPressed();实验内容(实验原理、运用的理论知识和数据、算法、程序、步骤和方法)五、功能展示刷新功能前进功能后退功能