Android 基础篇(二)

  • ADB进程
  • adb指令
    • adb install xxx.apk
    • adb uninstall 包名
    • adb devices
    • adb start-server
    • adb kill-server
    • adb shell –> 进入Linux的命令行
      • ls –> 显示文件及包名
      • ps –> 列举所有运行的进程
      • rm –> 删除文件
      • cd –> 切换目录
    • adb push 文件路径/文件名 sdcard/文件名 –> 把文件放进去
    • adb pull sdcard/文件名 –> 把文件拉出来,在哪个里面执行就拉倒哪
  • Android开发环境
    • sdk –> 软件开发工具包
    • eclipse –> Android Studio 代替了eclipse
    • adt:eclipse插件 –> Android开发工具
  • DDMS –> 调试服务
    • 查看Android设备
    • 控制台输出
    • 给模拟器打电话发短信
  • Android项目目录结构
    • assets:较大资源文件,没有资源id,使用io流读取
    • libs:第三方jar包
    • res:资源文件,有资源id
  • 按钮点击事件
    • 设置侦听
    • onClick属性
  • android五种常见布局
    • 线性 –> 竖直是上下无效,水平是左右无效
    • 相对
    • 帧 –> 只能上下左右对齐父元素
    • 表格:TableRow –> 表示行,子节点表示列
    • 绝对
  • Log –> 自定义等级和Tag
    • 控制台输出分5个等级
    • Log.v –> 打印冗余信息
    • Log.e
  • 单元测试框架
    • AndroidTestCase
    • 指令集【instrumentation : targetPackage 目标的包,及你要测哪个包】和类库【uses-library】
  • 数据存储
    • 文件读写:内部存储、外部存储路径
    • SharedPreference
      • 键值对形式保存数据
      • 保存到xml文件
    • 数据库SQLite数据库
    • ContentProvider
      • 把数据保存在别人的私有文件中
  • XML生成解析
    • XmlSerializer,序列化器
    • DOM(将整个文档全部加载到内存中)、SAX、PULL 【后两个都是读取一行解析一行,单Google推荐用pull】
    • pull事件类型
      • START_DOCUMENT
      • END_DOCUMENT
      • START_TAG
      • END_TAG
      • TEXT
  • SQLite数据库
    • SQLiteOpenHelper:创建数据库
    • 构造方法的4个参数
    • SQLiteDatabase:增删改查
    • 主键:_id
  • ListView:用于显示列表
    • 条目是一个View对象,可以用布局文件填充而来
    • 设置Adapter
    • getCount:获取条目总数
    • getView:获取View对象作为条目显示
    • 条目一旦划出屏幕,就会被缓存
    • 下一次getView方法调用时,会把缓存传进去
  • 网络请求
    • URL对象封装网址
    • 打开连接对象
    • 对连接对象做设置
      • 请求方式get/post
      • 连接/读取超时
    • 发送请求,获取相应码
    • 服务器通过流把请求的数据交给客户端
  • 消息队列机制
    • 主线程[本身就是一个死循环]创建时,就会创建MessageQueue和Looper对象
    • 程序员创建Handler对象
    • 消息队列中有消息,Looper【有Looper线程才能创建消息队列】就把消息取出,交给Handler,触发handleMessage调用,子线程没有Looper,只能自己创建,这样才能创建Handler
    • 发送消息:sendMessage
      • 把消息发到创建Handler的那个线程的消息队列
    • 消息携带数据
      • what
      • obj
      • setData:Bundle
  • Android四大组件
    • Activity
    • service
    • broadcastReceiver
    • contentProvider
  • Activity
    • 生命周期:

      • oncreate
      • onstart
      • onresume
      • onpause
      • onstop
      • ondestroy
      • onrestart
    • 启动方式:
      • startActivity
      • startActivityForResult –> 销毁时返回数据
      • 回调onActivityReslut –> 返回数据
    • 启动模式:
      • 标准 –> 默认,stander
      • singleTop –> 不在栈顶就创建
      • singleTask –> 栈中有就不创建,将它上面的都销毁掉
      • singleInstance –> 系统会用到【来电界面】,我们一般不用,保证内存中只有一个
  • Intent
    • Activity跳转
    • Service启动
    • 广播发送
    • 显式意图:指定目标Activity/Service的字节码 【本地应用,直接用.class等】
    • 隐式意图:设置intent对象去匹配intent-filter 【远程应用】
    • 可以封装数据
      • 八大基本数据类型及其数组
      • String及其数组
      • bundle
      • 实现了序列化接口的对象
        • Serializable –> java提供,本地化、持久化保存对象或与服务器做数据交互用它
        • Parcelable –> Android 自己定义,用于内存中传递
  • 广播接收者
    • 通过intent-filter定义接收什么广播
    • 可以设置优先级,对于有序广播有效
    • 有序广播
      • 按照优先级区分接收的先后顺序
    • 无序广播
      • 不分先后顺序
      • 不能拦截,不能修改广播内容
  • Service
    • 启动方式

      • startService

        • 服务进程
        • 服务跟Activity没有一毛钱关系
        • onCreate-onStartCommand-onDestroy
      • bindService
        • 进程优先级不变
        • 服务和Activity同生共死
          • onCreate-onBind-onUnbind-onDestroy
    • 进程优先级
      • 前台进程
      • 可见进程
      • 服务进程
      • 后台进程
      • 空进程
      • 先杀优先级低的,相同优先级,LRU【最近最少使用】算法定生死
  • AIDL –> 安卓接口定义语言,用于进程通信
    • 把接口文件后缀名改成aidl
    • aidl中默认都是public,不需要也不允许定义访问修饰符
    • 中间人对象继承Stub
    • 把aidl复制到启动者的应用中,包名必须一致
    • 绑定时获得中间人对象,Stub.asInterface强转
  • ContentProvider:
    • 共享私有数据
    • 提高安全性,可以定义共享规则
    • Uri匹配器
      • 匹配Uri末尾携带的内容
    • ContentObserver:接收通知,内容提供者改变数据库时会发通知
  • 播放器
    • MediaPlayer:音乐视频
    • SurfaceView:视频播放
      • surfaceHolder
      • 可见时创建,不可见时销毁
  • 摄像头
    • 启动系统自带的Activity

      • 自定义

        • Camera:负责拍照
        • SurfaceView:显示预览界面
  • 图片处理
    • 加载图片时会解析图片的所有像素信息
    • 内存中使用ARGB保存像素信息,也就是32位色,占用4个字节
    • 压缩图片后再加载
时间: 2024-11-07 15:04:33

Android 基础篇(二)的相关文章

JMS基础篇(二)

简介 异构集成是消息发挥作用的一个领域,大型公司内部可能会遇到很多的平台,Java,.net或者公司自己的平台等. 传送消息还应该支持异步机制,以提高系统整体的性能.异步传输一条消息意味着,发送者不必等到接收者接收或者处理消息,可以接着做后续的处理. 应用程序发送消息至另外一个应用程序,需要使用到消息中间件.消息中间件应提供容错,负载均衡,可伸缩的事务性等特性. JMS与JDBC类似,是一种与厂商无关的API.应用程序开发者可以使用同样的API来访问不同的系统. 可以认为JMS是一种标准,各消息

php基础篇-二维数组排序 array_multisort

原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(array1,sorting order, sorting type,array2,array3..)是对多个数组或多维数组进行排序的函数. array1 必需.规定输入的数组. sorting order 可选.规定排列顺序.可能的值是 SORT_ASC 和 SORT_DESC. sorting t

php基础篇-二维数组排序姐妹篇

前面介绍了php多维数组排序的一个函数array_multisort() ,想了解的人可以点击 二维数组排序 array_multisort 下面介绍下不适用array_multisort()进行多维数组的排序. 这里介绍下2个php排序函数,一个是asort,一个是arsort. asort(array,sorttype) 函数对数组进行排序并保持索引关系.主要用于对那些单元顺序很重要的结合数组进行排序. 可选的第二个参数包含了附加的排序标识. SORT_REGULAR - 默认.以它们原来的

Android 面试题总结之Android 基础(二)

Android 面试题总结之Android 基础ContentProvider(二) 在上一章节Android 面试题总结之Android 基础Activity(一) 我们讲的Activity基础知识.有许多朋友反映看着比较乱,我又回去看了看 ,确实很乱,不够细心.然后我又重新整理了一遍.让大家阅读体验更好! 在阅读过程中有任何问题,请及时联系. 本章系<Android 之美 从0到1 – 高手之路>Android基础ContentProvider 总结了Android 开发者面试比较常见的C

Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编译,所以借此篇内容说明一下原由并为之后文章的学习做准备. 即使本片内容只是在围绕一个小小的HelloWorld程序开展,但还是希望朋友们不要急于求成,"欲速则不达". 文章整体思路: 我们循序渐进地来看,一个Qt应用的完成有以下一个重要的步骤: 项目创建->源码编译->程序运行

JavaScript笔记基础篇(二)

基础篇主要是总结一些工作中遇到的技术问题是如何解决的,应为本人属于刚入行阶段技术并非大神如果笔记中有哪些错误,或者自己的一些想法希望大家多多交流互相学习. 1.ToFixed()函数 今天在做Birt报表时, 要显示一列百分比的数据,但因一些特别的原因,不能使用使用百分比样式,即如果数据是0.9538不能显示成“95.38%”的样式,必须显示成“95.38”. 开始时想使用javascript的内置函数Math.round(),可Math.round()只能显示为整数,而不能保留小数. 再网上搜

Hybrid APP基础篇(二)-&gt;Native、Hybrid、React Native、Web App方案的分析比较

说明 Native.Hybrid.React.Web App方案的分析比较 目录 前言 参考来源 前置技术要求 楔子 几种APP开发模式 概述 Native App Web App Hybrid App React Native App 分析 各大开发模式直观对比 如何选择开发模式 另类的app方案 微网页 微信小程序 其它 前言 参考来源 前人栽树,后台乘凉,本文参考了以下来源 对当前主流hybrid app.web app与native app工具的初步比较与分析 H5.React Nati

android基础篇学习心得

android技术中,线程.进程.JNI.IPC和各个小框架结构是基本功.在跟随高焕堂老师的android程序猿到架构师之路系列视频中 学习完基础篇之后,颇有些心得,记录下来. android开发就是app开发吗?曾听过很多人说android学习很简单,做个app轻松就上手了.我一直觉得不以为然,许多程序员做app开发时,心中大致只有四大组件.各种布局.数据库和一些常用控件.对于各小框架.线程间通信.绑定服务.java与c的对接等基本原理并不清楚,也没必要弄清楚. 最近学校搞了一个实训,要求做一

通过Rancher部署并扩容Kubernetes集群基础篇二

接上一篇通过Rancher部署并扩容Kubernetes集群基础篇一 7. 使用ConfigMap配置redis https://github.com/kubernetes/kubernetes.github.io/blob/master/docs/user-guide/configmap/redis/redis-config redis-config maxmemory 2mb     maxmemory-policy allkeys-lru # kubectl create configma