MD5算法 Message-Digest Algorithm 5(信息–摘要算法)
Message
Digest
MessageDigest
MessageDigest.getInstance( );
因为注册登陆涉及密码,咱们须要对用户的密码进行 MD5 算法加密,
MD5 算法是把任意长度的字符串变成固定长度(一般是128位)的16进制字符串,
且此算法不可逆。
具体代码以下:css
当点击登陆按钮时,需判断用户名和密码是否为空。java
若为空,则提示请输入用户名或密码,
若不为空,则获取用户输入的用户名,
因为用的是本地数据,须要根据用户名在 SharedPreferences 中查询是否有对应的密码,
如有对应的密码且与用户输入的密码(需经过 MD5 加密)比对一致状况,则登陆成功算法
点击登陆,查询服务器数据库,匹配则登陆,
进入一个新页面显示登陆信息,不匹配则显示登陆失败。sql
一、 给app分配网络访问的权限
二、 启动页面(LoginActivity)为登陆页面
三、 Helloword页面(MainActivity)为登陆成功的跳转页面
四、 输入的帐号密码正确则跳转,不然不跳转
五、 使用Intent实现页面的跳转
六、 使用httpclient发送登陆的异步请求
七、 AndroidManifest配置文件里面添加登陆页面的activity
八、 开发登陆接口,对app客户端发送的登陆请求进行处理数据库
添加httpclient框架和fastjson框架的依赖json
SQLite 是一个开源的嵌入式关系数据库,它能够减小应用程序管理数据的开销 ,
SQLite 可移植性好 、 很容易使用 、 很小 、 高效并且可靠 。
目前在Android 系统中集成的是 SQLite3 版本 ,
SQLite 不支持静态数据类型 , 而是使用列关系 。
这意味着它的数据类型不具备表列属性 , 而具备数据自己的属性 。
当某个值插入数据库时, SQLite 将检查它的类型。
若是该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成列类型。
若是不能转换,则该值将做为其自己具备的类型存储。
SQLite 支持 NULL 、INTEGER 、 REAL 、 TEXT 和 BLOB 数据类型。例如:能够在 Integer 字段中存放字符串,
或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。可是有一种例外,
若是你的主键是 INTEGER ,那么只能存储 6 4位整数 ,
当向这种字段中保存除整数之外的数据时, 将会产生错误 。
另外 ,
SQLite 在解 析REATE TABLE语句时,
会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息。服务器
SQLite 的特色网络
SQlite数据库总结起来有五大特色:app
SQlite3不用安装、不用配置、不用启动、关闭或者配置数据库实例。
当系统崩溃后不用作任何恢复操做,在下次使用数据库的时候自动恢复。框架
它是运行在 Windows 、 Linux 、BSD 、 Mac OS X 和一些商用 Unix 系统, 好比 Sun 的 Solaris 、IBM 的 AIX ,一样,它也能够工做在许多嵌入式操做系统下,好比 Android 、 QNX 、VxWorks、 Palm OS 、 Symbin 和 Windows CE 。
SQLite是被设计成轻量级、自包含的。一个头文件、一个 lib 库,你就可使用关系数据库了,不用任何启动任何系统进程。
SQLite有着简单易用的 API 接口。
SQLite的源码达到 100% 分支测试覆盖率。
Android 提供的 SQLiteOpenHelper.java 是一个抽象类。
那么咱们要使用它,必须本身写一个类来继承它
public class DatabaseHelper extends SQLiteOpenHelper{
接下来须要写一个
带所有参数的DatabaseHelper类的构造函数,
之后生成数据库对象的时候要用到:
static String name="user.db"; static int dbVersion=1;
//带所有参数的构造函数,此构造函数必不可少 public DatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); }
为了实现对数据库版本进行管理, SQLiteOpenHelper 类提供了两个重要的方法
分别onCreate(SQLiteDatabasedb) 和
onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion)
用于初次使用软件时生成数据库表,
后者用于升级软件时更新数据库表结构。
//只在建立的时候用一次 public void onCreate(SQLiteDatabase db) { String sql="create table user(id integer primary key autoincrement,username varchar(20),password varchar(20),age integer,sex varchar(2))"; db.execSQL(sql); } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
SQLiteDatabase.execSQL(String sql) 能够用来执行非查询 SQL 指令,这些指令没有结果
包括: CREATE TABLE / DROP TABLE / INSERT 等等