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
- startService
- 进程优先级
- 前台进程
- 可见进程
- 服务进程
- 后台进程
- 空进程
- 先杀优先级低的,相同优先级,LRU【最近最少使用】算法定生死
- 启动方式
- AIDL –> 安卓接口定义语言,用于进程通信
- 把接口文件后缀名改成aidl
- aidl中默认都是public,不需要也不允许定义访问修饰符
- 中间人对象继承Stub
- 把aidl复制到启动者的应用中,包名必须一致
- 绑定时获得中间人对象,Stub.asInterface强转
- ContentProvider:
- 共享私有数据
- 提高安全性,可以定义共享规则
- Uri匹配器
- 匹配Uri末尾携带的内容
- ContentObserver:接收通知,内容提供者改变数据库时会发通知
- 播放器
- MediaPlayer:音乐视频
- SurfaceView:视频播放
- surfaceHolder
- 可见时创建,不可见时销毁
摄像头
- 启动系统自带的Activity
- 自定义
- Camera:负责拍照
- SurfaceView:显示预览界面
- 自定义
- 启动系统自带的Activity
图片处理
- 加载图片时会解析图片的所有像素信息
- 内存中使用ARGB保存像素信息,也就是32位色,占用4个字节
- 压缩图片后再加载
Android 基础篇(二)的更多相关文章
- php基础篇-二维数组排序 array_multisort
原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(a ...
- 深入理解gradle编译-Android基础篇
深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...
- JavaScript笔记基础篇(二)
基础篇主要是总结一些工作中遇到的技术问题是如何解决的,应为本人属于刚入行阶段技术并非大神如果笔记中有哪些错误,或者自己的一些想法希望大家多多交流互相学习. 1.ToFixed()函数 今天在做Birt ...
- android基础篇学习心得
android技术中,线程.进程.JNI.IPC和各个小框架结构是基本功.在跟随高焕堂老师的android程序猿到架构师之路系列视频中 学习完基础篇之后,颇有些心得,记录下来. android开发就是 ...
- Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析
转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...
- NIO相关基础篇二
转载请注明原创出处,谢谢! 上篇NIO相关基础篇一,主要介绍了一些基本的概念以及缓冲区(Buffer)和通道(Channel),本篇继续NIO相关话题内容,主要就是文件锁.以及比较关键的Selecto ...
- Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较
说明 Native.Hybrid.React.Web App方案的分析比较 目录 前言 参考来源 前置技术要求 楔子 几种APP开发模式 概述 Native App Web App Hybrid Ap ...
- docker+k8s基础篇二
Docker+K8s基础篇(二) docker的资源控制 A:docker的资源限制 Kubernetes的基础篇 A:DevOps的介绍 B:Kubernetes的架构概述 C:Kubernetes ...
- Python基础篇(二)_基本数据类型
Python基础篇——基本数据类型 数字类型:整数类型.浮点数类型.复数类型 整数类型:4种进制表示形式:十进制.二进制.八进制.十六进制,默认采用十进制,其他进制需要增加引导符号 进制种类 引导符号 ...
随机推荐
- 理解 OpenStack 高可用(HA)(1):OpenStack 高可用和灾备方案 [OpenStack HA and DR]
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- 阅读Real-Time O(1) Bilateral Filtering 一文的相关感受。
研究双边滤波有很长一段时间了,最近看了一篇Real-Time O(1) Bilateral Filtering的论文,标题很吸引人,就研读了一番,经过几天的攻读,基本已理解其思想,现将这一过程做一简单 ...
- 传输层协议TCP和UDP
本文力图简洁,让读者对TCP和UDP有个初步的认知.闲话少说,现在开始吧.TCP和UDP都是传输层的协议.TCP通过三次握手建立可靠连接,对未送达的消息重新进行发送.UDP不建立连接而直接发送,对未送 ...
- 360:且用且珍惜!解决虚拟机linux启动缓慢以及ssh端卡顿的问题!
优化软件以及杀毒软件想必大家都是用过的,小编自用的第一台电脑自带安装的是金山毒霸,随着时间的偏移渐渐用过小红伞,卡巴斯基,优化大师,鲁大师到后来的360优化杀毒套装,优化软件给大家带来了方便,尤其是上 ...
- Vijos1404遭遇战[最短路建模]
背景 你知道吗,SQ Class的人都很喜欢打CS.(不知道CS是什么的人不用参加这次比赛). 描述 今天,他们在打一张叫DUSTII的地图,万恶的恐怖分子要炸掉藏在A区的SQC论坛服务器!我们SQC ...
- EhCache的配置
JPA和Hibernate的二级缓存都是这样做的 代码目录: 这是基础的jar包,如果少的话,再去maven下载 <!-- Spring --> <dependency> &l ...
- 脑成像数据分析:Python工具包
来源:SealHuang 脑成像技术已经成为认知科学和心理学研究领域中一种重要的研究手段,帮助研究者不断深入发掘我们脑中的秘密.伴随着研究的不断深入,各式各样的指标参数和分析方法也不断推陈出新,以迅雷 ...
- flex align-content中的描述的“多根轴线的对齐方式”中的“多根轴线”到底是什么
flex 有两条轴线,根据flex-flow 设置的来判断的,水平为主轴的话,那么值为row,垂直为主轴的话那么为column: 其中设置align-items 和 align-content都是来设 ...
- Spring源码分析——资源访问利器Resource之实现类分析
今天来分析Spring的资源接口Resource的各个实现类.关于它的接口和抽象类,参见上一篇博文——Spring源码分析——资源访问利器Resource之接口和抽象类分析 一.文件系统资源 File ...
- [LeetCode] The Skyline Problem
A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...