北京邮电大学世
5.结论
经过了数月的努力,Android平台手计步器软件终于完成了。本软件能实现用户对计步器的基本要求。方便用户开启关闭计步器,对运动情况和运动量可以直观的从主界面获取信息,设置选项中的智能人机交互平台也可以明了的对用户信息进行编辑,不需要复杂的操作不需要学习,一目了然。对于智能手机用户来说,基于安卓平台的手机计步器提供了一个快捷方便的平台。为用户提供随时随地的服务,节省用户不必要的资金消耗与时间消耗是本软件设计的一个宗旨,整个框架和细节的设计都是围绕这个宗旨进行的,虽然整个软件还不是很成熟,还有很多不足和需要改进的地方,或者还有很多信息提供不到位,例如我们可以加入音乐播放模块,是用户在运动的同时享受轻松快乐的环境,这些还需要日后慢慢优化和改善,但是最初的设计都实现了。
在现在的功能基础上本软件可以进行扩展升级。本软件最初设计的时候就是一个可以扩展的框架,所以为将来加入新的功能提供了很大的方便。本软件虽然不是很强大,但是是我自己亲手编写的,开发一个能在时下最流行的软件,使之顺利的在平台上运行是一件令人兴奋的事情。把自己的想法一步一步地付诸实践,最后成为一个真实的实物,被别人使用和称赞,此时得到的成就感是尤为强烈的。
北京邮电大学世
参考文献
[1] 李刚.疯狂的Android讲义[M].北京:电子工业出版社.2011.7.
[2] 吴亚峰,苏亚光.Android2.0游戏开发实战宝典[M].北京:人民邮电出版 社.2010.7.
[3] 李宁.Android开发完全讲义[M].北京:中国水利水电出版社.2012.4. [4] 严蔚敏,吴伟民.数据结构 [M].北京:清华大学出版社.2007.3. [5] 李刚.疯狂Java讲义[M].北京:电子工业出版社.2008.10.
[6] Bruce Eckel著.Java编程思想(陈昊鹏)[M].北京:机械工业出版
社.2007.6:23-35
[7] 苏亚光;吴亚峰;索依娜.Android平台下传感器技术开发计步器应用[J].电脑编程技巧与维护.2010(23):3-6.
[8] 熊刚.基于Android的智能手机的设计与实现[D].武汉理工大学.2010:34一60. [9] Sandeep Kumar. Location Based Services using Android[C]. Android
Application Fundamentals, 2009 IEEE International Conference: P1-5 [10] 姚昱旻,刘卫国.Android 与J2ME 平台间即时通信的研究与实现[J].计算机系
统应用.2008(12):118-120
[11] 公磊,周聪.基于Android 的移动终端应用程序开发与研究[J].计算机与现代
化.2008(8):86-89.
[12] 差沙,地狱男爵.用Android 开发手机应用[J].程序员.2008(1):25-27 [13] Narayan Babu.Android application development skills[J].IT TIME WEEKLY,
2012。6(8):55-58.
[14] Konrad Adenauer.Android structural design guidelines[J].Journal of
Computer and Software Engineering,2012.3(6):69-72.
北京邮电大学世
附录
Activity
package edu.bupt.comm.liangwenshu.pedometer; import android.app.Activity;
import android.app.backup.RestoreObserver; import android.content.ComponentName; import android.content.Context; import android.content.Intent;
import android.content.ServiceConnection; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.Message;
import android.preference.PreferenceManager; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button;
import android.widget.LinearLayout; import android.widget.TextView; /**
* @author Liangwenshu */
public class WalkingActivity extends Activity {
private static final String TAG = \ private SharedPreferences mSettings;
private PedometerSettings mPedometerSettings; private Utils mUtils;
private TextView mStepValueView; // 步数 private TextView mPaceValueView; //
private TextView mDistanceValueView; // 距离 private TextView mSpeedValueView; // 速度
private TextView mCaloriesValueView; // 卡路里消耗显示框 TextView mDesiredPaceView;
private int mStepValue;// mStepValueView的值 private int mPaceValue;// mPaceValueView的值
private float mDistanceValue;// mDistanceValueView的值 private float mSpeedValue;// mSpeedValueView的值
北京邮电大学世
private int mCaloriesValue;// mCaloriesValueView的值 private float mDesiredPaceOrSpeed;// private int mMaintain;// is爬山
private boolean mIsMetric=true;// 公制和米制切换标志 private float mMaintainInc;//
private boolean mQuitting = false; // private Button resetButton;
private Button start_pause_button;
// Set when user selected Quit from menu, can be used by onPause, onStop, // onDestroy /**
* True, when service is running. */
private boolean mIsRunning;// 程序是否运行的标志位 /** Called when the activity is first created. */ @Override
// 开始函数,重写该函数,加入日志。 @Override
protected void onStart() {
Log.i(TAG, \ super.onStart(); }
// 重写回复函数 @Override
protected void onResume() {
Log.i(TAG, \ super.onResume();
mSettings = PreferenceManager.getDefaultSharedPreferences(this); mPedometerSettings = new PedometerSettings(mSettings); mUtils.setSpeak(mSettings.getBoolean(\
// Read from preferences if the service was running on the last onPause mIsRunning = mPedometerSettings.isServiceRunning();
// Start the service if this is considered to be an application start // (last onPause was long ago)
mPedometerSettings.clearServiceRunning();
mStepValueView = (TextView) findViewById(R.id.step_value); mPaceValueView = (TextView) findViewById(R.id.pace_value);
mDistanceValueView = (TextView) findViewById(R.id.distance_value); mSpeedValueView = (TextView) findViewById(R.id.speed_value);
北京邮电大学世
mCaloriesValueView = (TextView) findViewById(R.id.calories_value); mDesiredPaceView = (TextView) findViewById(R.id.desired_pace_value); // 重设按钮
resetButton = (Button) findViewById(R.id.reset_button); resetButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
resetValues(true); } });
// 开始/暂停按钮 start_pause_button = (Button) findViewById(R.id.start_pause_button);
start_pause_button.setText(mIsRunning ? R.string.pause : R.string.resume);
start_pause_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if
(start_pause_button.getText().equals(getResources().getString(R.string.pause)))
{
start_pause_button.setText(R.string.resume); unbindStepService(); stopStepService(); } else if (start_pause_button.getText().equals(getResources().getString(R.string.resume)))
{
start_pause_button.setText(R.string.pause); startStepService(); bindStepService(); } } });
mIsMetric = mPedometerSettings.isMetric(); ((TextView) findViewById(R.id.distance_units))
.setText(getString(mIsMetric ? R.string.kilometers