今天探讨Android中的消息机制,主要包括消息的发送、接收以及与线程之间的关系。完成这一过程主要需要以下三个类的协作:Looper,Handler,MessageQueue。先给出一个总体图:Android的消息机制 (4).pngLooper每一个looper都会和一个线程绑定。要创建一个新的looper并将它同当前的线程绑定起来,你必须要调用Looper.prepare()方法。这些loop
转载
2024-08-19 14:18:35
12阅读
Android提供了5种方式来让用户保存持久化应用程序数据。根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是: ① 使用SharedPreferences存储数据 ② 文件存储数据③ SQLite数据库存储数据④ 使用ContentProvider存储数据⑤ 网络存储数据 1. 使用Shared Prefere
转载
2023-12-25 00:18:32
68阅读
Android的启动速度一直以来是他的诟病,虽然现在Android设备的硬件速度越来越快,但是随着新版本的出现,其启动速度一直都比较慢,当然,作为程序员,我们是可以理解的,智能手机本身就要启动很多服务来支持应用的功能,并且Android系统大部分还是使用的Java语言编写的,必然要运行在Java虚拟机里,这也决定了它运行速度和启动速度都相对较慢。同时,Android系统为了在执行用户应用程序时提高
转载
2023-09-24 18:35:46
81阅读
TL;DRpreload本质:preload 是声明式的 fetch,可以改变浏览器加载资源的优先级,强制浏览器请求资源,同时不阻塞文档 onload 事件,也因此可以将 load 事件与脚本解析过程解耦prefetch本质:让浏览器空闲的时候加载下一页可能需要的资源,同样的load和解析解耦dns-fetch,让浏览器提前做dns预解析,当静态资源和html不在同一个域的时候,特别好用async
转载
2024-09-23 13:04:02
166阅读
2018-01-06 新增说明本文中所采用的方案需要持有Handler对象,并且需要反射,在Activity或Fragment内部UI初始化之前预加载数据比较适合,在打开Activity之前预加载数据就不太合适。最新方案PreLoader(github地址)适用于:提升app冷启动速度在打开activity之前预加载数据在Activity内部预加载数据在显示Fragment之前预加载数据为多Vie
转载
2023-09-15 21:17:07
86阅读
内容提供者(Content Provider)是android的四大组件之一,重要性可想而知,一个进程的数据可以被另外一个进程访问(在不同的apk之间可以访问),内容提供者可以跨应用,数据库跨应用的使用场景:一个应用中提供数据给其他应用;允许用户从一个应用中拷贝数据到另一个应用;在整个框架中提供一种自定义的查询建议。如果只在一个应用中使用数据的话使用SQLite,不需要使用Content Prov
转载
2023-12-19 22:16:52
33阅读
文章目录应用是什么时候支持 binder 机制的应用大致启动流程是什么总结问题 应用是什么时候支持 binder 机制的binder 都知道是用来做跨进程服务的,应用内可以通过binder 跟系统组件进行交互。如 AMS Service aidl 等那么可以思考一下,当 Activity onCreate() 的时候,甚至是 Application 的 onCreate() 的时候都可以获取的到
转载
2023-11-09 08:30:23
34阅读
preloader按照MTK的说法是MTK in-house developed loader,也就说是mtk内部开发的一个loader,那么单独编译preloader也是可以的,使用命令./mkproject_name n pl。1. 启动流程首先需要明确的是preloader、lk、kernel、android这些系统镜像文件是存储在NANDflash中的,然后每个mtk芯片都有个boot&n
转载
2023-11-11 23:07:06
131阅读
Linux preloader是Linux系统中的一个重要组件,它起着非常关键的作用。那么,Linux preloader究竟是什么呢?在Linux系统启动时,内核会首先加载preloader,也称为引导加载程序。preloader的主要任务是在Linux内核加载之前执行一些初始化工作,以确保内核能够正确加载和运行。
在Linux系统中,preloader主要有两个作用:一是初始化硬件设备,包括
原创
2024-05-23 10:26:31
209阅读
这里简单介绍了preloader的启动流程,ATF的实现部分可参考1.链接器脚本link_descriptor.ld定义了preloader的入口函数OUTPUT_ARCH(arm)
ENTRY(_start)2.init.S定义了_start,并跳转到main执行.globl _start
_start:
b resethandler
/*
* 设置svc32模式
* 禁止中断fi
转载
2023-07-17 16:10:16
299阅读
使用自己的开发板,我们最先开始做的可能就是preloader。不管我们以后是跑操作系统还是裸程序,preloader是做为前期CPU环境的最小配置存在的。它的主要功能是最小化配置CPU,还有一个主要功能是配置我们的DDR。这个过程中,很有可能是板子起不来,遇到很多问题。DS-5提供了很好的方法,用来调试preloader。首先,我们编译完preloader后,会生成一个pre-mkimage.bi...
原创
2021-05-26 21:24:30
707阅读
使用Handler和Thread是Android进行线程间通信的主要方式。概括地说,原理分三步: Thread调用Looper的静态方法,将当前Thread用作Looper。Looper创建消息队列,并对该队列进行轮询。Handler实例化绑定Looper,根据业务向Looper对应的消息队列发送消息。该消息被2中的轮询获取。 具体来说,Thread调用Looper的prepare()方法后,就
转载
2024-02-27 11:13:38
3阅读
一.简介 MTK的bootloader分为bootROM + pre-loader[l5] +U-boot因为bootloader的一部分和系统有关,所以MTK为了不同的应用将它分为两部分的bootloader: (1)第1部分bootloader,也就是MTK内部(in-house)的pre-loader,这部分依赖平台,这部分有Boot
以定义参数 cus_param 为例,int型变量。
1. Preloader部分
Platform.h(mediatek\platform\[$platform]\preloader\src\drivers\inc\platform.h) 在如下结构体中加cus_param变量,如果是char型,请注意4byte对其:
typede
原创
2023-02-16 10:22:26
286阅读
以定义參数 cus_param 为例。int型变量。 1. Preloader部分 Platform.h(mediatek\platform\[$platform]\preloader\src\drivers\inc\platform.h) 在例如以下结构体中加cus_param变量。假设是char
转载
2017-08-05 21:00:00
275阅读
2评论
cyclone v fpga可以由preloader从QSPI读取,并通过FPGAMANAGER进行配置。FPGA文件需要使用rbf fppX16格式,可以使用压缩格式。这种配置方式可以使preloader提前将FPGA配置好,在启动vxworks系统前,使自己开发FPGA部分提前进入配置,方便软件调试自己开发的FPGA模块。我的QSPI大小为32M,主要用于存放preloader,param,v...
原创
2021-05-26 21:24:31
1171阅读
由于需要兼容更多的emcp,mcp,discrete dram,以及由于新的需求修改preloader code都可能会增大preloader bin的size,这时就可能会在build preloader阶段发生build error,log中会报类似以下的错误信息:===================== Building Fail ========
原创
2023-05-19 09:47:22
130阅读
在开发altera soc cyclone v以及其它的soc时,我们需要先使用quartus 及其它组件qsys构建工程,然后soceds根据生成硬件配置文件handoff,生成uboot的头文件及相关配置,最后编译成我们需要的preloader及其及uboot。在使用bsp-editor生成相关文件后,在handoff与generated文件夹可以看到许多头文件与C语言文件,这些文件是...
原创
2021-05-26 21:28:05
806阅读
flex默认的preloader已经很不错了,可是有时候还是需要自定义的.
需要在要出现自定义预加载的程序的<mx:Application>标签里加入preloader="".
preloader="com.lichen.component.CustomPreloader"
其中,com.lichen.component是我的包名,Custom
原创
2009-12-16 15:51:29
9614阅读
2评论
tflearn 数据集太大无法加载进内存问题?Hi, all!I'm trying to train deep net on a big dataset that doesn't fit into memory.Is there any way to use generators to read batches into memory on every training step?I'm loo
原创
2023-08-03 21:39:09
112阅读