Android阅读器day1_01sp

Android阅读器

做底层的或者游戏待遇会很高。NDK

内置底层修改

 

Android-sdk-windows\platform-tools\adb.exe

这里的adb工具可以用于安装android应用程序(*.apk)

D:\cd-reader\adb install myreader.apk

 

这里有三个阅读器的应用程序:

MyBook.apk

MyReader.apk

GoBook14.apk

 

将文本文件存入sdcard中, xx.txt push入File Explorer中的sdcard

 

 

MyReader.apk

 

1 选择图书

选项菜单---》添加图书按钮---》添加图书表单—》选择图书路径

2 查看图书目录

继续阅读

  乱码

设置 : 设置每页字数    设置字号

第一页

上一页

下一页

编辑图书

删除图书

设置密码

MyBook.apk

 

图书导入

   批量导入 自动扫描 返回书架

分享

意见反馈

帮助

检查更新

退出

 

图书目录—加载图书---

白天模式---

夜晚模式---

图片模式---

粉红模式---

进度控制---进度导航条

GoBook14.apk

1 选择文件夹

自动扫描(默认目录导入)

批量导入

返回书架

2 选择文件

全选

导入

取消导入

3 书架展示图书

4 读取图书

改变文字大小

改变进度

背景色

阅读背景

翻页方式

 

如果真的是9月底发工资,我得到了什么白干了1个月。就算我等到10月底,我还是白干1个月

那我要做的是:1 赚的是时间,晚上的学习时间。2 面试机会

9月:快递+晚上项目视频

10月:面试---》关外软件公司或者包住软件公司

11月:稳定发展,获取工资。

12月:转正后,想办法借贷1.5万用来完成mba的学习2.25万

 

对MyReader.apk进行开发设计

 

主页:

 

main.xml

显示表头的信息

main_item.xml 显示图书目录

ListView(sqlite)

 

_ID

书名:

作者

密码

文件路径

简介

阅读时间

文件总的大小

阅读文件进度:字节

TableLayout

file.xml

文件路径,按钮

 

file_item.xml

ListView

图标,文件名称

点击事件:File

 

长按3秒以上弹出上下文菜单

 

必须传入要是图书实体的_ID

 

 

感悟很重要,用积木式的项目进行开发。产品框架+功能组件!

第一,  以产品为核心

第二,   对产品进行组件式的扩展!

第三,   如果我能够坚持,产品和组件的模式,一年,十年之后,我将会收获很多的。

 

1创建andriord project

2创建 mainActivity

package cd.itcast.read.ui;

 

import android.app.Activity;

import android.os.Bundle;

 

public class MainActivity extends Activity{

   /** Called when the activity is first created. */

   @Override

   public void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

    }

}

 

3 写添加图书实体 book.java

 

package cd.itcast.read.domain;

 

import java.util.Date;

 

public class Book {

       //_ID

       privateint _id;

       //书名:

       privateString name;

       //作者

       privateString author;

       //密码

       privateString password;

       //文件路径

       privateString filePath;

       //简介

       privateString descs;

       //最后阅读时间

       privateDate lastReadTime;

       //文件总的大小

       privatelong fileSize;

       //阅读文件进度:字节

       privateint start;

 

       publicint get_id() {

              return_id;

       }

 

       publicvoid set_id(int _id) {

              this._id= _id;

       }

 

       publicString getName() {

              returnname;

       }

 

       publicvoid setName(String name) {

              this.name= name;

       }

 

       publicString getAuthor() {

              returnauthor;

       }

 

       publicvoid setAuthor(String author) {

              this.author= author;

       }

 

       publicString getPassword() {

              returnpassword;

       }

 

       publicvoid setPassword(String password) {

              this.password= password;

       }

 

       publicString getFilePath() {

              returnfilePath;

       }

 

       publicvoid setFilePath(String filePath) {

              this.filePath= filePath;

       }

 

       publicString getDescs() {

              returndescs;

       }

 

       publicvoid setDescs(String descs) {

              this.descs= descs;

       }

 

       publicDate getLastReadTime() {

              returnlastReadTime;

       }

 

       publicvoid setLastReadTime(Date lastReadTime) {

              this.lastReadTime= lastReadTime;

       }

 

       publiclong getFileSize() {

              returnfileSize;

       }

 

       publicvoid setFileSize(long fileSize) {

              this.fileSize= fileSize;

       }

 

       publicint getStart() {

              returnstart;

       }

 

       publicvoid setStart(int start) {

              this.start= start;

       }

 

}

 

 

4创建bookmanager对图书进行增删查改

 

package cd.itcast.read.manager;

 

import java.util.List;

 

import android.content.Context;

importandroid.database.sqlite.SQLiteDatabase;

import cd.itcast.read.domain.Book;

import cd.itcast.read.util.DatabaseHelper;

 

public class BookManager {

       privateDatabaseHelper helper;

 

       publicBookManager(Context context) {

              helper= new DatabaseHelper(context);

       }

 

       publicvoid save(Book book) {

              SQLiteDatabasewrite = helper.getWritableDatabase();

              //返回是null

              //write.execSQL(sql)

              //返回是long,插入的主键

              //定义出来java本地方法,通过java native interface调用c/c++方法通过andriod

              //ndk打包成一个.so文件(windows,.dll动态链接库)来实现

              //private final native long native_executeInsert();

              //write.insert(table, nullColumnHack,values)

       }

 

       publicvoid update(Book book) {

 

       }

 

       publicvoid detele(int id) {

       }

 

       publicBook get(int id) {

              returnnull;

       }

 

       publicList<Book> getAll() {

              returnnull;

       }

}

 

 

 

5 BookManagerTest类对BookManager测试

 

package cd.itcast.read.manager;

 

import android.test.AndroidTestCase;

 

public class BookManagerTest extendsAndroidTestCase {

 

       privateBookManager bookManager;

 

       //错误的写法,

       //public BookManagerTest() {

       //bookManager = new BookManager(getContext());

       //}

       @Override

       protectedvoid setUp() throws Exception {

              bookManager= new BookManager(getContext());

       }

 

       publicvoid testSave() {

              //fail("Notyet implemented");

       }

 

       publicvoid testUpdate() {

              fail("Notyet implemented");

       }

 

       publicvoid testDetele() {

              fail("Notyet implemented");

       }

 

       publicvoid testGet() {

              fail("Notyet implemented");

       }

 

       publicvoid testGetAll() {

              fail("Notyet implemented");

       }

 

}

======================================================================================================================================================

要成功测试则需要AndroidManifest.xml进行修改

 

<?xml version="1.0"encoding="utf-8"?>

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

   package="cd.itcast.read.ui"

   android:versionCode="1"

   android:versionName="1.0" >

 

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

 

    <application

       android:icon="@drawable/ic_launcher"

       android:label="@string/app_name" >

       <activity

           android:name=".MainActivity"

           android:label="@string/app_name" >

            <intent-filter>

                <actionandroid:name="android.intent.action.MAIN" />

 

                <categoryandroid:name="android.intent.category.LAUNCHER" />

            </intent-filter>

       </activity>

       <uses-libraryandroid:name="android.test.runner"/>

   </application>

<!--            注意修改包名 -->

    <instrumentationandroid:name="android.test.InstrumentationTestRunner"

              android:targetPackage="cd.itcast.read.ui"android:label="MyTest" />

</manifest>

 

 

 

 

6需要写一个工具类DatabaseHelper对sqlite进行操作

 

package cd.itcast.read.util;

 

import android.content.Context;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.database.sqlite.SQLiteOpenHelper;

 

public class DatabaseHelper extendsSQLiteOpenHelper {

 

       privatestatic final String DB_NAME = "read.db";

       privatestatic final int DB_VERSION = 1;

 

       publicDatabaseHelper(Context context) {

              super(context,DB_NAME, null, DB_VERSION);

       }

 

       //建表,onCreate第一次创建数据库时候可以调用。

       @Override

       publicvoid onCreate(SQLiteDatabase db) {  

 

       }

 

       //当应用程序升级的时间,可能表的信息的就改变:alert table

       @Override

       publicvoid onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

 

       }

 

}

 

 

 

 

 

 

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值