目 录
一、概述 1
1.1 选题背景 1
1.2 项目意义 1
二、可行性分析和目标群体 2
2.1 可行性分析 2
2.2 目标群体 2
三、作品功能和原型设计 2
3.1 总体功能结构 2
3.2 具体功能模块设计 3
3.2.1 锁屏/解锁模块 3
3.2.2 九宫格密码加密模块 3
3.2.3 防盗功能模块 3
3.2.4 自定义锁屏背景模块 3
3.3 界面设计 3
3.3.1 主界面设计 3
3.3.2 密码功能界面设计 4
3.3.3 防盗功能界面设计 5
四、作品实现、特色和难点 7
4.1 作品实现 7
4.2 特色分析 7
4.3 难点和解决方案 7
五、团队介绍和人员分工 8
5.1 团队介绍 8
5.2 人员分工 8
六、其他 9
6.1 开发结束后的感触 9
6.2 不足之处和今后设想 9
6.3 用到的第三方代码或组件 9
七、致谢 10
二、可行性分析和目标群体
2.1 可行性分析
首先可行性是毋庸置疑的,首先,市场方面是存在的,我在做这个项目之前进行了简单的调研,返现有很多人还是希望能够自定义锁屏界面的,因为许多市面上的APP没有这种功能,同时对于防盗功能更是必须的,举例来说在我们的图书馆,很多同学看书看累了或者是粗心大意,就会直接把手机丢到桌子上,同时每个月都有好多同学不是丢电脑就是丢手机的。所以做一个这种的防盗功能的app更是情势所迫,这样可以在某种程度上减少手机的丢失概率。正是因为市场的需求造成这种app的诞生。
2.2 目标群体
目标群体分为两种,主要是分为个人和组织,个人主要面向群体是在校学生这种手机长用户,因为他们容易丢手机,同时也容易成为盗窃的受害者,同时比如像图书管这种防盗不好进行地方,更有这种软件市场,同时对于学生来说,更喜欢个性化,喜欢追求自由。
而对于组织来说,主要面向各种手机公司,尤其是卖手机的地方,我们的APP的市场更为广阔,本文转载自http://www.biyezuopin.vip/onews.asp?id=14987企业可以通过自定义锁屏的方式不断循环播放广告,低成本,但是高效率。同时也可以起到防盗的功能,比如某些不可以取下的手机。
四、作品实现、特色和难点
4.1 作品实现
作品实现:使用工具
IDE:adt-bundle-windows-x86_64-20140702,
SDK:API-19
Tools: sdk tool:hierarchyviewer.bat
draw9patch.bat
4.2 特色分析
特色有三:
1.首先是正常的密码加密以及锁屏功能,有基本的保护功能
2.防盗功能,正如同前面分析的,有广泛的应用空间和很强的实用性
3.自定义锁屏背景,可以让你的生活不再单调,手机也能透露你的个性,一个好的锁屏背景不如一个真正属于你自己的锁屏背景更加适合你
4.3 难点和解决方案
难点有监听系统消息,同时最重要的是对于九宫格密码的存储识别以及最后校验的过程,同时还有在进行防盗功能时候设置移动度量以及最后senor的register和unregister的事件相应问题。还有就是关于一些逻辑的设计问题,很是个难题,要考虑很多,要不就会留下bug,或者是做出交互性不好的软件。
解决方案即使查找资料,并且多次试验,找人进行用户体验试验以及重复测试,同时通过画状态图的方式进行相关状态的制约问题。
package com.eva.me.myscreenlock;
import java.net.ContentHandler;
import com.eva.me.myscreenlock.psdlock.LocusMainActivity;
import com.eva.me.myscreenlock.sensor.SensorMainActivity;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("com.eva.me.localService");
startService(intent);
Toast.makeText(MainActivity.this, "锁屏功能已经开启,关闭屏幕尝试一下吧~", Toast.LENGTH_SHORT).show();
}
});
Button btnStart = (Button) findViewById(R.id.button2);
btnStart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, LocusMainActivity.class);
startActivity(intent);
}
});
Button btnSensor = (Button) findViewById(R.id.button3);
btnSensor.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SensorMainActivity.class);
startActivity(intent);
}
});
Button btnAbout = (Button) findViewById(R.id.button4);
btnAbout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
View content = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog_about_us_content, null);
AlertDialog aboutUsAlertDialog = new AlertDialog.Builder(MainActivity.this)
.setTitle("关于我们")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
})
.setView(content)
.create();
aboutUsAlertDialog.show();
}
});
}
@Override
public 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;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}






