java攻城狮之路(Android篇)--SQLite

一.Junit
    1.怎么使用
        在AndroidManifest.xml文件中进行配置, 在manifest借点下配置instrumentation, 在application借点下配置uses-library
        定义类继承AndroidTestCast
        定义测试方法, Run As JunitTest
        如果需要判断测试结果, 可以使用Assert.assertEquals()方法.

下面是利用独立的测试工程JunitTest来测试工程Junit:

package com.shellway.junit;

public class Service {
      public int divide(int a,int b){
          return a/b;
      }
}

Service.java

package com.shellway.junit;

import junit.framework.Assert;
import android.test.AndroidTestCase;

public class TestT extends AndroidTestCase {
    public void test1(){
        Service service = new Service();
        System.out.println(service.divide(10, 2));
    }
    public void test2(){
        Service service = new Service();
        System.out.println(service.divide(10, 0));
    }
    public void test3(){
        Service service = new Service();
        Assert.assertEquals(2.5, service.divide(10, 4));
    }
}

TestT.java

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.shellway.junit"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="21" />
       <instrumentation
        android:targetPackage="com.shellway.junit"
        android:name="android.test.InstrumentationTestRunner" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <uses-library android:name="android.test.runner" />
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

AndroidManifest.xml

JunitTest工程中的:

package com.shellway.junit.test;

import junit.framework.Assert;

import com.shellway.junit.Service;

import android.test.AndroidTestCase;

public class MyTest extends AndroidTestCase {
    public void test1(){
        Service service = new Service();
        System.out.println(service.divide(10,2));
    }
    public void test2(){
        Service service = new Service();
        System.out.println(service.divide(10, 0));
    }
    public void test3(){
        Service service = new Service();
        Assert.assertEquals(2.5, service.divide(10, 4));
    }
}

MyTest.java

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.shellway.junit.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="16" />

    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.shellway.junit" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />
    </application>
</manifest>

AndroidManifest.xml

二.日志
    1.怎么使用
        Log.v(), d(), i(), w(), e()
        可以按级别输出日子信息, 可以指定Tag

package com.example.logcat;

import android.test.AndroidTestCase;
import android.util.Log;

public class LogTest extends AndroidTestCase {
    public void test1(){
        System.out.println("System.out");
        System.err.println("System.out");
    }
    public void test2(){
        Log.v("LogTest", "verbose");
        Log.d("LogTest", "debug");
        Log.i("LogTest", "info");
        Log.w("LogTest", "warning");
        Log.e("LogTest", "error");
    }
}

LogTest.java

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.logcat"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
        <instrumentation
        android:targetPackage="com.example.logcat"
        android:name="android.test.InstrumentationTestRunner" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
     <uses-library android:name="android.test.runner" />
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

AndroidManifest.xml

三.读写文件
    1.读写SD卡
        获取SD卡路径要使用Environment.getExternalStorageDirectory()
        最好在使用SD卡之前判断状态, Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
        写入SD卡需要权限, android.permission.WRITE_EXTERNAL_STORAGE
    2.读写手机
        可以使用Context.openFileOutput(String, int)方法打开输出流
        指定文件名后会自动在当前应用所在文件夹下生成files文件夹, 在其中创建文件
        int参数是文件权限, 可以是使用Context下的常量进行设置

四.SharedPreferences
    1.什么是SharedPreferences
        是一个键值对结构的容器, 类似于Map(Properties), 可以向其中存储键值对, 根据键查找值, 存储在容器中的数据会以xml文件形式保存.
    2.怎么使用
        使用Context.getSharedPreferences(String, int)获取对象, 指定文件名和文件模式
        使用SharedPreferences.edit()方法获取编辑器Editor
        使用Editor.putString(), putInt()等方法存储数据
        使用Editor.commit()方法提交修改(类似事务)
        获取的时候直接使用 SharedPreferences.getString(), getInt()等方法获取数据
        
五.XML
    1.解析
        获取解析器: Xml.newPullParser()
        设置输入流: parser.setInput(InputStream, String)
        获取当前事件类型: parser.getEventType(), 共5种
        获取下一个事件类型: parser.next()
        获取标签名: parser.getName()
        获取属性值: parser.getAttributeValue(int)
        获取下一个文本: parser.nextText()
    2.生成
        获取解析器:
        设置输出流:
        开始文档:
        结束文档:
        开启标签:
        结束标签:
        设置属性:
        设置文本:

六.SQLite数据库
    1.SQLite数据库的特点
        手机自带的数据库, 不区分数据类型(除了主键), 语法和MySQL相同, 每个库是一个文件
    2.创建库
        定义类继承SQLiteOpenHelper, 定义构造函数, 显式调用父类构造函数, 传入4个参数
        重写onCreate()和onUpgrade()方法
        调用getWritableDatabase()或者getReadableDatabase()方法都可以创建数据库
        数据库文件不存在时, 会创建数据库文件, 并且执行onCreate()方法
        数据库文件存在, 并且版本没有改变时, 不执行任何方法
        数据库文件存在, 版本提升, 执行onUpgrade()方法
    3.增删改查
        增删改都可以使用SQLiteDatabase.execSQL()方法执行SQL语句完成
        查询方法需要使用SQLiteDatabase.rawQuery()方法进行查询, 得到一个Cursor, 再调用moveToNext()和getString()getInt()等方法获取数据

时间: 2024-10-29 19:10:56

java攻城狮之路(Android篇)--SQLite的相关文章

java攻城狮之路(Android篇)--Activity生命

1 写一个类 extends Activity Activity是android的四大组件之一. Activity的激活分为显式意图激活和隐式意图激活. 如果一个activity希望别人隐式意图激活:则要配置过滤器1 action = ""2 有一个缺省的category,(可以有多个category),若不配置该类型会发生这样的一个错误:Caused by: android.content.ActivityNotFoundException: No Activity found to

java攻城狮之路(Android篇)--BroadcastReceiver&amp;Service

四大组件:activity 显示. contentProvider 对外暴露自己的数据给其他的应用程序.BroadcastReceiver 广播接收者,必须指定要接收的广播类型.必须明确的指定actionservice 服务,是运行后台,它是没有界面的.对某件事情进行监听. 一.广播:事件.普通广播: 是异步的.会广播接收者同时接收,不能被中断sendBroadcast()有序广播: 是同步的.会根据广播接收的优先级进行接收,是可以中断 短信到来广播 sendOrderBroadcast()-1

java攻城狮之路(Android篇)--ListView与ContentProvider

一.ListView 1.三种Adapter构建ListView ListView添加条目的时候, 可以使用setAdapter(ListAdapter)方法, 常用的ListAdapter有三种 BaseAdapter: 定义一个类继承BaseAdapter, 重写4个抽象方法, ListView的条目是由getView()方法构建出来的 SimpleAdapter: 创建SimpleAdapter对象时, 传入数据(List<Map<String, ?>>), 并指定数据的绑定

java攻城狮之路(Android篇)--与服务器交互

一.图片查看器和网页源码查看器 在输入地址的是不能输入127.0.0.1 或者是 localhost.ScrollView :可以看成一个滚轴 可以去包裹很多的控件在里面 练习1(图片查看器): package com.shellway.imagelooker; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedUR

java攻城狮之路(Android篇)--MP3、MP4、拍照、国际化、样式主题、图片移动和缩放

一.MP3播放器 查看Android API文档可以看到MediaPlayer状态转换图: 练习: package com.shellway.mp3player; import java.io.File; import java.io.IOException; import android.support.v7.app.ActionBarActivity; import android.telephony.PhoneStateListener; import android.telephony.

java攻城师之路(Android篇)--搭建开发环境、拨打电话、发送短信、布局例子

一.搭建开发环境 1.所需资源 JDK6以上 Eclipse3.6以上 SDK17, 2.3.3 ADT17 2.安装注意事项 不要使用中文路径 如果模拟器默认路径包含中文, 可以设置android_sdk_home环境变量解决.效果如下: 二.拨打电话 1.步骤 在Button节点中添加onClick属性, 指定一个方法名 在Activity中定义一个public void 方法名 (View view) 获取文本框中的号码 创建意图, 设置动作, 设置数据 使用意图开启Activity 2.

java攻城狮之路--复习JDBC

1.JDBC中如何获取数据库链接Connection? Driver 是一个接口: 数据库厂商必须提供实现的接口. 能从其中获取数据库连接. 可以通过 Driver 的实现类对象获取数据库连接. 1. 加入 mysql 驱动 1). 解压 mysql-connector-java-5.1.7.zip 2). 在当前项目下新建 lib 目录 3). 把 mysql-connector-java-5.1.7-bin.jar 复制到 lib 目录下 4). 右键 build-path , add to

java攻城狮之路--复习xml&amp;dom_pull编程续

本章节我们要学习XML三种解析方式: 1.JAXP DOM 解析2.JAXP SAX 解析3.XML PULL 进行 STAX 解析 XML 技术主要企业应用1.存储和传输数据 2.作为框架的配置文件 使用xml 存储和传输数据1.通过程序生成xml2.读取xml 中数据 ---- xml 解析 什么是DOM和SAX ?DOM Document Object Model ----- 文档对象模型 DOM思想: 将整个xml 加载内存中,形成文档对象,所有对xml操作都对内存中文档对象进行DOM

java攻城狮之路--复习xml&amp;dom_pull编程

xml&dom_pull编程: 1.去掉欢迎弹窗界面:在window项的preferences选项中输入“configuration center” 找到这一项然后     把复选框勾去即可. 2.去掉打开Myeclipse时弹出的:Please allow Subclipse team to receive......办法: Windows-->Preferences-->General-->Startup and Shutdown-->取消Subclipse Usage