服务启动方式、bitmap、surfaceview
来源:互联网 发布:keep设置网络 编辑:程序博客网 时间:2024/04/29 05:30
13.服务的生命周期:
一、采用start的方式开启服务
生命周期如下:
onStart()过时了
开启服务: onCreate()--> onStartCommand() ---> onDestory();
如果服务已经开启,不会重复的执行onCreate(), 而是会调用onStart()和 onStartCommand();
服务停止的时候 onDestory().
服务只会被停止一次
二、服务还有一种开启方式,绑定的方式开启服务。
onCreate() --->onBind();--->onunbind()-->onDestory();
服务长期后台运行,又想调用服务的方法:
1.start方式开启服务(保证服务长期后台运行)
2.bind方式绑定服务(保证调用服务的方法)
3.unbind解除绑定服务
4.stopService停止服务。
三、两种开启服务方法的区别。
① start方式开启服务。 一旦服务开启跟调用者(开启者)就没有任何关系了。
开启者退出了,开启者挂了,服务还在后台长期的运行。
开启者没有办法去调用服务里面的方法。(美国的司法独立)
② bind的方式开启服务,绑定服务,调用者挂了,服务也会跟着挂掉。不求同时生,但求同时死。
开启者可以调用服务里面的方法。
2》远程服务:调用者和服务在不同的工程代码里面。
本地服务:调用者和服务在同一个工程代码里面。
每一个应用程序都是运行在自己独立的进程里面的。
进程操作系统分配内存空间的一个单位。进程的数据都是独立的。独立的内存空间。
aidl:android interface definition language 安卓接口定义语言
aidl文件都是公有的,没有访问权限修饰符
IPC: inter process communication 进程间通讯
绑定本地服务调用方法的步骤:
1.在服务的内部创建一个内部类 提供一个方法,可以间接调用服务的方法: private class MiddlePerson extends Binder implements IMiddlePerson{}
2.实现服务的onbind方法,返回的就是中间人 MiddlePerson
3.在activity 绑定服务。bindService();
4.在服务成功绑定的时候 会执行一个方法 onServiceConnected 传递过来一个 IBinder对象
5.强制类型转化 调用接口里面的方法。
绑定远程服务调用方法的步骤:
1.在服务的内部创建一个内部类 提供一个方法,可以间接调用服务的方法
2.把暴露的接口文件的扩展名改为aidl文件 去掉访问修饰符 public: private class MiddlePerson extends IMiddlePerson.Stub{} IPC的子类
3.实现服务的onbind方法,返回的就是中间人 IMiddlePerson
4.在activity 绑定服务。bindService();
5.在服务成功绑定的时候 会执行一个方法 onServiceConnected 传递过来一个 IBinder对象
6.IMiddlePerson.Stub.asInterface(binder) 调用接口里面的方法。
3》 MainActivity <--> Service --->aidl
错误1:在MainActivity中调用 bindService() 绑定服务后,就通过得到的IBinder对象去调用 Service中的方法时,出现空指针 异常?
原因: bindService() 是异步操作,在另一个线程中运行。bindService()绑定服务后,要等一会儿才能得到IBinder对象。
解决:把调用Service中的方法 放在onServiceConnected()中。
2》混合调用的服务的生命周期:
服务长期后台运行,又想调用服务的方法:
1.start方式开启服务(保证服务长期后台运行)
2.bind方式绑定服务(保证调用服务的方法)
3.unbind解除绑定服务
4.stopService停止服务。
顺序不能乱,乱了之后 可能出现 解除绑定失败或停止服务失败。
14》bitmap
图片大小:
① 图片格式,不同的格式 保存1个像素占用的位数不一样,8位,16位,24位,32位
② 图片分辨率--->像素的大小 1280*760=972800 个像素 .....
android 默认的vm(虚拟机) 的内存大小是16MB.
与手机的运行内存要区分开来。
1. 图片绽放 --- 把周围的[10几个]像素都用一个像素来表示。
jpg -- 有损图片压缩
bmp -- 无损图片
2. 怎么替换过时的方法?
点入 查看源码,会有提示 代替的方法。
3. Matrix -- 对原图进行缩放的
4. 搜索资料小技巧 ---face morph filetype:ppt
filetype:ppt 指定是ppt类型
5. face++ -- 人脸识别
15》同步代码、异步代码
同步代码 -- 方法是顺序执行的,前面的代码没执行,后面的就等着
异步代码 -- 开子线程或新线程执行代码
问1:多次调用异步代码 有什么问题?
答:响应的代码会执行多次。
2》样式和主题的区别
① 作用范围不同,样式都是作用在一个小控件上;主题作用于一个Activity 或整个应用程序
② 样式都在布局文件里面配置,主题都在清单文件中配置
3》反编译 --- Android 逆向助手
1. 查看别人的应用的布局
反编译apk 即可。
2. 看别人的代码
① 把apk 拖入,提取dex
② 把dex拖入,dex转jar
4》安装 apk
① 安装 apk 就是拷贝操作,把apk拷贝到 /data/app 目录下。
1.系统应用 ---> /system/app 目录
② 在 system 目录下有 packages.list 和 packages.xml 两个文件,相当于Windows下的注册表,安装了的apk都会在表中有记录。
更新这两个文件。
这两步都不用我们去写,google已经把这个步骤封装好了,我们只需要用Intent去调用相应的Activity.
surfaceview : 完成单位时间内大量的界面变化。 一不可见就会销毁,因为它内存消耗比较大。
视频播放器。
游戏。
双缓冲机制:内部有两个子线程。
A 解码图像--->前台显示--->解码图像---> 前台显示
B 解码图像--->前台显示---> 解码图像
3gp
一、采用start的方式开启服务
生命周期如下:
onStart()过时了
开启服务: onCreate()--> onStartCommand() ---> onDestory();
如果服务已经开启,不会重复的执行onCreate(), 而是会调用onStart()和 onStartCommand();
服务停止的时候 onDestory().
服务只会被停止一次
二、服务还有一种开启方式,绑定的方式开启服务。
onCreate() --->onBind();--->onunbind()-->onDestory();
绑定服务不会调用onstart或者onstartcommand方法;
混合调用的服务的生命周期:服务长期后台运行,又想调用服务的方法:
1.start方式开启服务(保证服务长期后台运行)
2.bind方式绑定服务(保证调用服务的方法)
3.unbind解除绑定服务
4.stopService停止服务。
三、两种开启服务方法的区别。
① start方式开启服务。 一旦服务开启跟调用者(开启者)就没有任何关系了。
开启者退出了,开启者挂了,服务还在后台长期的运行。
开启者没有办法去调用服务里面的方法。(美国的司法独立)
② bind的方式开启服务,绑定服务,调用者挂了,服务也会跟着挂掉。不求同时生,但求同时死。
开启者可以调用服务里面的方法。
2》远程服务:调用者和服务在不同的工程代码里面。
本地服务:调用者和服务在同一个工程代码里面。
每一个应用程序都是运行在自己独立的进程里面的。
进程操作系统分配内存空间的一个单位。进程的数据都是独立的。独立的内存空间。
aidl:android interface definition language 安卓接口定义语言
aidl文件都是公有的,没有访问权限修饰符
IPC: inter process communication 进程间通讯
绑定本地服务调用方法的步骤:
1.在服务的内部创建一个内部类 提供一个方法,可以间接调用服务的方法: private class MiddlePerson extends Binder implements IMiddlePerson{}
2.实现服务的onbind方法,返回的就是中间人 MiddlePerson
3.在activity 绑定服务。bindService();
4.在服务成功绑定的时候 会执行一个方法 onServiceConnected 传递过来一个 IBinder对象
5.强制类型转化 调用接口里面的方法。
绑定远程服务调用方法的步骤:
1.在服务的内部创建一个内部类 提供一个方法,可以间接调用服务的方法
2.把暴露的接口文件的扩展名改为aidl文件 去掉访问修饰符 public: private class MiddlePerson extends IMiddlePerson.Stub{} IPC的子类
3.实现服务的onbind方法,返回的就是中间人 IMiddlePerson
4.在activity 绑定服务。bindService();
5.在服务成功绑定的时候 会执行一个方法 onServiceConnected 传递过来一个 IBinder对象
6.IMiddlePerson.Stub.asInterface(binder) 调用接口里面的方法。
3》 MainActivity <--> Service --->aidl
错误1:在MainActivity中调用 bindService() 绑定服务后,就通过得到的IBinder对象去调用 Service中的方法时,出现空指针 异常?
原因: bindService() 是异步操作,在另一个线程中运行。bindService()绑定服务后,要等一会儿才能得到IBinder对象。
解决:把调用Service中的方法 放在onServiceConnected()中。
2》混合调用的服务的生命周期:
服务长期后台运行,又想调用服务的方法:
1.start方式开启服务(保证服务长期后台运行)
2.bind方式绑定服务(保证调用服务的方法)
3.unbind解除绑定服务
4.stopService停止服务。
顺序不能乱,乱了之后 可能出现 解除绑定失败或停止服务失败。
14》bitmap
图片大小:
① 图片格式,不同的格式 保存1个像素占用的位数不一样,8位,16位,24位,32位
② 图片分辨率--->像素的大小 1280*760=972800 个像素 .....
android 默认的vm(虚拟机) 的内存大小是16MB.
与手机的运行内存要区分开来。
1. 图片绽放 --- 把周围的[10几个]像素都用一个像素来表示。
jpg -- 有损图片压缩
bmp -- 无损图片
2. 怎么替换过时的方法?
点入 查看源码,会有提示 代替的方法。
3. Matrix -- 对原图进行缩放的
4. 搜索资料小技巧 ---face morph filetype:ppt
filetype:ppt 指定是ppt类型
5. face++ -- 人脸识别
15》同步代码、异步代码
同步代码 -- 方法是顺序执行的,前面的代码没执行,后面的就等着
异步代码 -- 开子线程或新线程执行代码
问1:多次调用异步代码 有什么问题?
答:响应的代码会执行多次。
2》样式和主题的区别
① 作用范围不同,样式都是作用在一个小控件上;主题作用于一个Activity 或整个应用程序
② 样式都在布局文件里面配置,主题都在清单文件中配置
3》反编译 --- Android 逆向助手
1. 查看别人的应用的布局
反编译apk 即可。
2. 看别人的代码
① 把apk 拖入,提取dex
② 把dex拖入,dex转jar
4》安装 apk
① 安装 apk 就是拷贝操作,把apk拷贝到 /data/app 目录下。
1.系统应用 ---> /system/app 目录
② 在 system 目录下有 packages.list 和 packages.xml 两个文件,相当于Windows下的注册表,安装了的apk都会在表中有记录。
更新这两个文件。
这两步都不用我们去写,google已经把这个步骤封装好了,我们只需要用Intent去调用相应的Activity.
surfaceview : 完成单位时间内大量的界面变化。 一不可见就会销毁,因为它内存消耗比较大。
视频播放器。
游戏。
双缓冲机制:内部有两个子线程。
A 解码图像--->前台显示--->解码图像---> 前台显示
B 解码图像--->前台显示---> 解码图像
3gp
0 0
- 服务启动方式、bitmap、surfaceview
- Hive 服务方式启动
- 服务的启动方式
- 服务启动方式二-使用Receiver方式启动服务
- 服务启动方式三-使用bindService方式启动服务
- 命令行更改服务启动方式
- 纯服务方式启动vbox
- 服务方式启动svn服务器
- 启动oracle服务有三种方式
- 服务方式启动svn服务器
- 启动oracle服务有三种方式:
- dubbo服务启动方式对比
- linux服务启动方式分析
- dubbo服务的启动方式
- 启动oracle服务有三种方式:
- 自启动服务方式一
- 开机启动OpenVPN(服务方式启动OpenVPN)
- 命令行方式 启动和停止 windows服务
- 先分组求最大值,再把所有组求和的hive自定义UDAF
- matlap实现肺实质区域初始分割,去除肺部气管及背景
- Unix Socket --- 原始套接字(Raw Socket)
- 第四周项目一三角形类的构造函数(3)
- Android ListView在布局上用到的几个属性
- 服务启动方式、bitmap、surfaceview
- android上建立http服务器
- ObjectC----便利构造器和指定初始化
- 卸载vmware tool,需要手动卸载open-vm-tools,但由于依赖性失败了
- 第3周项目1-三角形累的构造函数(4)
- Vim入门基础
- mysql如何仅导出数据结构
- matlab矩阵基础运算
- MySQL安装教程图解