为了账号安全,请及时绑定邮箱和手机立即绑定

Android攻城狮的第二门课(第3季)

难度初级
时长 6小时 0分
学习人数
综合评分9.57
162人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.3 逻辑清晰
  • SQLite特点主要包括: 1、 轻量级 一个动态库、单文件 2、 独立性 没有依赖、无须安装 3、 隔离性 全部在一个文件夹中 4、 跨平台 支持众多操作系统 5、 多语言接口 支持众多编程语言 6、 安全性 事务 --关于事务处理的安全性: -通过数据库上的独占性和共享锁来实现独立事务处理 -多个进程可以同一时间从同一个数据库读取数据,但只有一个可以写入数据。 SQLite的数据类型: -SQLite支持NULL、INTEGER、REAL、TEXT、BLOB数据类型 -依次代表:空值、整型值,浮点值,字符串值,二进制对象 动态数据类型(弱引用) -当某个值插入到数据库时,SQLite会检查他的数据类型,如果该类型与关联的列类型不匹配,SQLite就会尝试将该值转换成该列的类型,如果不能转换,该值将作为本身的类型存储。 使用须知: -由于资源占用少、性能良好和零管理成本,嵌入式数据库有了他的用武之地。例如Android、IOS -没有可用于SQLite的网络服务器、只能通过网络共享可能存在文件锁定或者性能问题。 -只提供数据库级的锁定。 -没有用户账户概念,而是根据文件系统确定所有数据库的权限
    查看全部
  • 一、GestureDetector (一)手势交互过程: 1.触屏一刹那,触发MotionEvent事件 2.被OntouchListener监听,在onTouch()中获得MotionEvent对象 3.GestureDetector转发MotionEvent对象至OnGestureListener 4.OnGestureListener获得该对象,根据该对象封装的信息作出合适的反馈 (二)名词解释 1.MotionEvent: a.用于封装手势、触摸笔、轨迹球等动作事件 b.内部封装用于记录横轴和纵轴坐标的属性X和Y 2.GestureDetector:识别各种手势 3.OnGestureListener: a.手势交互的监听接口,其提供多个抽象方法 b.根据GestureDector的手势识别结果调用相对应的方法 (三)GestureDetector详解: 1.触摸屏:按下。移动、抬起等(重载onTouch或者设置setOntouchListener) 2.GestureDetector工作原理: a.当接收到用户触摸消息时,将消息交给GestureDetector加工 b.通过设置监听获得GestureDetector处理后的手势 3.GestureDetector提供两个监听器 a.OnGestureListener:处理单击类消息 b.OnDoubleTapListener:处理双击类消息
    查看全部
  • 1.目录结构。this.getFilesDir().当前程序默认的数据存储目录 2.this.getCacheDir(),默认的缓存文件的存放位置,不太重要的创建使用,内存不足的时候,系统会自动删除app中cache目录的数据 3.this.getDir("imooc",MODE_PRIVATE);/data/data/<包名>/app_imooc, 4.this.getExternalCacheDir(),外部的存储位置,app卸载后会自住删除。 5.如果开发者不遵守不把数据放入data/data/<包名>或者/mnt/sdcard/Android/data/<包名>,卸载不会清除
    查看全部
    5 采集 收起 来源:File类方法介绍

    2018-03-22

  • 通过bindService()得到的Service是和启动源(Activity)绑定在一起的,在Activity退出的时候需要调用unbindService()进行解绑定(停止)。 调用bindService()时会调用到目标Service的onBind()函数,通过IBinder接口实例,返回一个ServiceConnection对象给启动源。然后启动源可以通过ServiceConnection对象得到启动的Service对象 1. 使用方法: (1)重写onBind()方法 public IBinder onBind(Intent intent) { return new MyBinder(); } (2)MyBinder是继承自Binder类的,而Binder类实际上实现了IBinder接口 public class MyBinder extends Binder{ public MyBindService getService(){ return MyBindService.this; //返回这个Service的实例 } } (3)在启动源的Activity中创建一个ServiceConnection实例 ServiceConnection conn = new ServiceConnection() { //当启动源跟service的连接意外丢失的时候会调用 //比如service崩溃了,或被强行杀死了 public void onServiceDisconnected(ComponentName name) { } //当启动源跟service成功连接之后会调用这个方法 public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub MyBindService myService = ((MyBinder)service).getService(); } }; (4)bindService()中指定ServiceConnection conn参数 bindService(intent2, conn, Service.BIND_AUTO_CREATE);
    查看全部
    5 采集 收起 来源:Bind启动

    2015-08-17

  • 四种存储方式: 1.SharedPreferences 1)一种轻型的数据存储方式 2)本质:基于XML文件存储key-value键值对数据 3)常用来存储一些简单的配置信息 2.SQLite 3.Content Provider 4.File 实现SharedPreferences存储步骤: (1)获取SharedPreferences对象 (2)获取SharedPreferences.Editor对象(因为SharedPreferencesd对象不能直接进行存储,存储实现通过Editor对象实现) (3)通过Editor接口的putXxxx方法保存 (4)通过Editor.commit提交 ps:Android默认的XML解析器为DOM
    查看全部
  • 1、 在android中如何使用SQLite -SQLiteDatabase 提供了一些管理SQLite数据库的类 提供创建,删除,执行SQLite命令,并执行数据库管理任务的方法 每个程序的数据库名字是唯一的 db.execSQL(sql)//执行任何SQL语句 db.insert(String table,String nullColumnHack,ContentValues values)//(表名,空列的日志,值) db.delete(String table,String whereClause,String[] whereArgs)//(表名,删除条件,删除条件数组值) db.update(String table,ContentValues values,String whereClause,String[]whereArgs)//(表名,值,更新条件,更新的条件数组) db.query(String table,String[]Columns,String selection,String[] selectionArgs,String groupBy ,String having ,String orderBy,String limit)//(表名,查询的列,位置条件,与selection拼成条件,分组,分组条件,排序,分页限制)(查询) db.rawQuery(sql,selecionArgs)(查询) -SQLiteOpenHelper
    查看全部
  • (四)OnGestureListener接口: 单击:onDown(MotionEvent e) 抬起:onSingleTapUp(MotionEvent e) 短按:onShowPress(MotionEvent e) 长按:onLongPress(MotionEvent e) 滚动:onScroll(MotionEvent e1,MotionEvent e2,float distanceX,float distanceY) 滑动:onFling(MotionEvent e1,MotionEvent e2,float velocityX,float velocityY) (五)OnDoubleTaoListener接口: 双击:onDoubleTap(MotionEvent e) 双击按下和抬起各触发一次:onDoubleTapEvent(MotionEvent e) 单击确认:onSingleTapConfirmed(MotionEvent e)(即很快的按下并抬起,但并不连续点击第二下) (六)SimpleOnGestureListener 1.集成SimpleOnGestureListener 2.重载感兴趣的手势
    查看全部
  • Android常用的四中存储方式: 1、shareprences 2、sqlite 3、contentProvider 4、file/网络 sharePrences 的使用方式: 1、首先获取一个sp对象 ## 第一种方式: 在Activity的onCreate()方法里 通过getSharePrences() ## 第二种方式: PrencesManager.getDefaultPrences 获取了sp对象 2、获取编辑器对象 sp对象.editor() ; 3、通过edit对象put("key","value"); 4、 commit()提交数据; 我们还可以edit对象.remove("key") 移除数据 如何获取数据 通过sp对象.get(“key”); 获取数据 根据 getXX类型获取什么类型的数据。 实现SharedPreferences存储步骤: 1.获得SharedPreferences对象 SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(MainActivity.this); 或 SharedPreferences pref=getSharedPreferences("myPref",Mode_PRIVATE); 2.获得SharedPrederences.Editor对象 Editor editor=pred.edit(); 3.通过Editor接口的putXxx方法保存key-value对其中Xxx表示不同的数据类型 editor.putString("name","张三"); editor.putInt("age",30); editor.putLong("time",System,currentTimeMillis()); editor.putBoolean("default",true); 4.通过Editor接口的commit方法保存key-value对 editor.commit(); 笔记附录: 1.附加代码:editor.remove(key); 2.取值: pref.getString("name",""); pref.getInt("age",0);
    查看全部
  • 1.Broadcast广播 广泛运用在应用程序之间传输信息的机制 2.BroadcastReceiver广播接收者 对广播进行过滤接收并响应的一类组件,就是用来接收来自系统和应用中的广播 3.用途 开机完成后系统会产生广播 网络状态改变时系统会产生广播 电池电量改变时,系统会产生广播 Android为什么要这样设计? 大大减少开发工作量和开发周期 作为应用开发者只需要掌握BroadcastReceiver 使用方法: 发送: 把信息装入一个Intent对象(如Action,Category) 通过调用相应的方法将Intent对象以广播方式发送 sendBroadcast() sendOrderBroadcast() sendStickyBroadcast() 接收: 当Intent发送后,所有已经注册的BroadcastReceiver会检查注册时IntentFilter是否与发送的Intent相匹配,匹配成功就会调用BroadcastReceiver的onReceive()方法。 所以定义一个BroadcastReceiver时都需要实现onReceive()方法 注意: BroadcastReceiver需要注册 静态注册 代码注册 注意!! BroadcastReceiver生命周期只有10秒左右 在BroadcastReceiver里不能做耗时操作 应该通过发送Intent给Service,由Service来完成 不能使用子线程 广播的种类: 普通广播Normal broadcasts -所有监听该广播的广播接受者都可以间听到该广播 有序广播Oraered broadcasts -按照接受者的优先级顺序接收广播,优先级别在intent-filter中的priority中声明,-1000到1000间,值越大优先级越高.可终止光比意图的继续传播,接收者可以篡改内容. 异步广播(滞留广播) -不能将处理结果传给下一个接受者,无法终止广播 普通广播贴点: 同级别接收先后是随机的(无序) 级别低的后收到广播 接收器不能截断广播继续传播也不能处理广播 同级别动态注册高于静态注册 有序广播特点: 同级别接收顺序时随机 能截断广播的继续传播,高级别广播接收器收到该广播后,可以决定把该广播是否截断 接收器能截断广播的继续传播,也能处理广播 同级别动态注册高于静态注册
    查看全部
  • 如何实现ContentProvide 1继承抽象类ContentProvide实现增删改查等方法 2.在AndroidManifest.xml中完成对COntentProvide的注册 <provide android:name="com.imooc.MusicProvide" android:authorities="com.provide.music"> 注:注册的authorities属性是全局唯一的
    查看全部
  • <!-- 在SD卡中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 向SD卡写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    查看全部
  • 实现SharedPreferences存储步骤: 1.获得SharedPreferences对象 SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(MainActivity.this); 或 SharedPreferences pref=getSharedPreferences("myPref",Mode_PRIVATE); 2.获得SharedPrederences.Editor对象 Editor editor=pred.edit(); 3.通过Editor接口的putXxx方法保存key-value对其中Xxx表示不同的数据类型 editor.putString("name","张三"); editor.putInt("age",30); editor.putLong("time",System,currentTimeMillis()); editor.putBoolean("default",true); 4.通过Editor接口的commit方法保存key-value对 editor.commit(); 笔记附录: 1.附加代码:editor.remove(key); 2.取值: pref.getString("name",""); pref.getInt("age",0);
    查看全部
  • @异步广播 private BC3 bc3;//全局变量 case R.id.button3://异步广播 Intent intent3=new Intent(); intent3.putExtra("msg", "这是一条异步广播!"); intent3.setAction("BC_Three"); sendStickyBroadcast(intent3); //若先发消息后注册可以成功,则有异步效果。 IntentFilter intentFilter=new IntentFilter("BC_Three"); intentFilter.setPriority(100); bc3=new BC3(); registerReceiver(bc3, intentFilter); break; //动态注册的必须销毁APP时解除注册 @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(bc3); } <uses-permission android:name="android.permission.BROADCAST_STICKY"></uses> 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • <!-- 在SD卡中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses> <!-- 向SD卡写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses> 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • DemoSQLite III(下) public class DBOpenHelper extends SQLiteOpenHelper { public DBOpenHelper(Context context, String name) { super(context, name,null,1); // TODO 自动生成的构造函数存根 } public DBOpenHelper(Context context, String name, CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { super(context, name, factory, version, errorHandler); // TODO 自动生成的构造函数存根 } @Override//首次创建数据库的时候调用,一般用来建库/建表的操作 public void onCreate(SQLiteDatabase db) { // TODO 自动生成的方法存根 db.execSQL("create table if not exists stutb(_id integer primary key autoincrement,name text not null,sex text not null,age integer not null)"); db.execSQL("insert into stutb(name,sex,age)values('张三','女',18)"); } @Override//当数据库的版本发生变化的时候会自动执行 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO 自动生成的方法存根 } } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    3 采集 收起 来源:SQLiteOpenHelper

    2018-03-22

首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
本课程是Android开发课程的中后期部分,学习之前要求对一些知识点有一定的了解: 1、已经掌握了Java基础 2、已经熟悉或者了解Android中的监听事件原理 3、已经熟悉或者了解一种以上的数据库,并掌握基本的SQL语句
老师告诉你能学到什么?
1、初步掌握Android手势识别的原理以及实际使用 2、初步掌握Android的数据存储方式 3、深度了解Android中的组件 4、熟悉了解Android常用的系统服务并对服务的使用有新的认识

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!