android fota小结

  1. fota在make中有个关键的目标target-files-package,该目标生成一个用于做升级包的zip文件。升级包中的内容是定义好的文件列表。
  2. 同时有一个主要的脚本./build/tools/releasetools/ota_from_target_files,这个脚本可以根据不同的参数生成完整的升级包和差分升级包。
  3. 完整的升级包是采用覆盖的形式升级,差分升级则是采用patch的方式升级。
  4. 在update-binary中会有升级的函数定义,在update-script中会调用不同的函数进行相应的升级。
  5. update-script是在./build/tools/releasetools/ota_from_target_files中生成的,会根据升级类型定义升级的动作序列。

综上所述,fota就是将需要升级的文件打包,根据完整包和差分包的不同需求,进行再次打包成recovery mode定义好的格式,recovery调用update-binary解析update-script,逐句完成升级。

更多细节要阅读./build/tools/releasetools/ota_from_target_files的帮助,直接在终端运行这个程序即可。

android fota小结

时间: 2024-10-05 03:37:08

android fota小结的相关文章

Android技巧小结之新旧版本Notification

最近开发用到了通知功能,但有几个地方老是提示deprecated,然后就找了篇文章学习了下新旧版本的不同. Notification即通知,用于在通知栏显示提示信息. 在较新的版本中(API level  > 11),Notification类中的一些方法被Android声明deprecated(弃用),其实基本上相当于全部弃用了,因为这个类本身方法就少得可怜. Android官方声明弃用,一定有它的理由,虽然我也不知道是什么.奈何本人轻度强迫症患者,人家都建议你不要用了,那就不要老是恪守着N年

Android Fragment小结

为何使用Fragment? 实现UI的灵活组建与拆分,与Activity配合可保持Activity的视图不变,转而操作Fragment,就像Activity的模块与组建一样.同时解决了 在平板上UI的适应性. <Android编程权威指南>一书作者提出了AUF(即Always Use Fragment)原则----暂且相信他 Fragment 的生命周期依赖于Activity的生命周期,并且有自己独特的方法,不多赘述. 1.获取Fragment的视图(layout转成视图对象) 通过重写fra

Android存储小结

转自:http://www.liaohuqiu.net/cn/posts/storage-in-android/ android系统自身自带有存储,另外也可以通过sd卡来扩充存储空间.前者好比pc中的硬盘,后者好移动硬盘. 前者空间较小,后者空间大,但后者不一定可用. 开发应用,处理本地数据存取时,可能会遇到这些问题: 需要判断sd卡是否可用: 占用过多机身内部存储,容易招致用户反感,优先将数据存放于sd卡; 应用数据存放路径,同其他应用应该保持一致,应用卸载时,清除数据: 标新立异在sd卡根目

Android开发经验分享(5)Android优化小结

项目中何时不会用到优化呢,现把一些优化的小经验总结下 1.万恶的static static是个好东西,声明赋值调用就是那么的简单方便,但是伴随而来的还有性能问题.由于static声明变量的生命周期其实是和APP的生命周期一样的,有点类似与Application.如果大量的使用的话,就会占据内存空间不释放,积少成多也会造成内存的不断开销,直至挂掉.static的合理使用一般用来修饰基本数据类型或者轻量级对象,尽量避免修复集合或者大对象,常用作修饰全局配置项.工具类方法.内部类. 2.无关引用 很多

android Menory 小结

不建议在Activity中使用static 变量,考虑使用Application.当然,static final例外 但Application也不要cache某个Activity使用的View,如果cache也一定要在这个Activity Destroy()时手动清空Application中对view的cache. 线程造成内存泄露. public class MyActivity extends Activity { @Override public void onCreate(Bundle 

Android AIDL 小结

1.AIDL (Android Interface Definition Language ) 2.AIDL 适用于 进程间通信,并且与Service端多个线程并发的情况,如果只是单个线程 可以使用 Messenger ,如果不需要IPC 可以使用Binder 3.AIDL语法:基础数据类型都可以适用,List Map等有限适用.static field 不适用. 4.AIDL基本用法 第一步:实现.aidl文件 接口描述文件 1.导入的包名 2.如果有使用Object对象,需要该对象 impl

Android WindowManager 小结

Android---系统服务之 ---WindowManager WindowManager是Android中一个重要的服务(Service ).WindowManager Service 是全局的,是唯一的.它将用户的操作,翻译成为指令,发送给呈现在界面上的各个Window.Activity会将顶级的控件注册到 Window Manager 中,当用户真是触碰屏幕或键盘的时候,Window Manager就会通知到,而当控件有一些请求产生,也会经由ViewParent送回到Window Man

Android开发小结(一)

一.fill_parent.match_parent.wrap_content的区别: fill_parent:将强制性地使构件扩展,以填充布局单元内尽可能多的空间. wrap_content:将强制性地使视图扩展以显示全部内容,大体等同于设置 Windows控件的Autosize属性为True. match_parent:Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用,那么如果

Android RxJava小结

一.如何使用 在build.gradle中添加依赖 1 dependencies { 2 api 'io.reactivex:rxandroid:1.2.1' 3 api 'io.reactivex:rxjava:1.3.0' 4 implementation fileTree(include: ['*.jar'], dir: 'libs') 5 implementation 'com.android.support:appcompat-v7:27.1.1' 6 implementation '