自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 Gitee.io 博客开通了

开通了Gitee的静态博客。地址:https://jaesoon.gitee.io/ 会两边同时更新。大家可以参与围观。

2022-05-05 12:02:45 906

原创 卡片层叠Banner

卡片层叠Banner uni vue

2022-08-04 19:02:50 388 1

原创 手把手教你用js实现一个虚拟机

什么是虚拟机?虚拟机就是使用编程的方式在计算机中虚拟出一个计算机。什么是计算机呢?我想起小学二年级时,第一次上微机课,微机老师是这样给我解释的:计算机本质就是一台做计算的机器。这句话,给我小小的脑袋里留下了大大的问号。直到长大后,我才知道,这分明就是:听君一席话,如听一席话的废话解释。为什么呢?老师说的没错,计算机本质上就是一个计算的机器。但是,我们日常接触到的计算机,如:笔记本、台式机、手机、树莓派等,可都是生龙活虎、绘声绘色的。上能设计造飞机,下能摸鱼打游戏。看起来和我们买菜、乘车等常用的二位数加减乘

2022-05-30 22:56:01 2132

原创 QuickJS JSShape剖析

JSShape定义JSShape在内存中的分布如下图代码定义如下:#define JS_PROP_INITIAL_SIZE 2#define JS_PROP_INITIAL_HASH_SIZE 4 /* must be a power of two */#define JS_ARRAY_INITIAL_SIZE 2typedef struct JSShapeProperty { uint32_t hash_next : 26; /* 0 if last in list */

2022-05-22 11:31:33 723

原创 QuickJS 代码解析阶段关键结构体

代码解析关键数据结构

2022-05-14 23:44:15 295

原创 QuickJS JavaScript世界的原始原型对象的建立

标题面向对象与原型链JavaScript中,对象的继承是通过原型链的方式来实现。一个子对象可以从父对象中继承其父对象的属性和方法。具体的机制是:当访问一个对象的属性或方法时,首先会查找该对象是否有对应的属性或方法。如果有,就调用其属性和方法。如果没有,就访问其原型对象,查看原型对象中是否存在。如果存在,就调用该属性或方法。如果没有,继续寻找原型对象的原型对象。直到访问到原始原型对象为止。需要注意的是,所有的对象继承自原始原型对象。在QuickJS中,JS对象反映在引擎中,是一个JSObject结构体。原

2022-05-14 23:17:13 807 1

原创 QuickJS 数字字面量解析

背景QuickJS是Fabrice Bellard在2019年发布的一款支持ES6的JavaScript引擎。Fabrice Bellard是一位富有传奇经历的大佬。自己独立开发、发起和维护的耀眼明星项目有:FFmpeg、TCC、QEMU、JSLinux和LTEENB等等。FFmpeg是一个开源音视频处理库,提供了简单便捷统一的音视频处理接口,将广大的音视频开发程序员从音视频开发苦海中解放出来。QEMU是一个模拟器框架,绝大多数PC上的安卓模拟器都是基于它开发出来的。

2022-05-12 22:17:28 414

原创 QuickJS JSValue

JSValue在JavaScript中,变量是弱类型的。但是C是一个强类型语言。但是QuicksJS作为一个使用C语言编写的虚拟机,少不了和JavaScript代码中的变量交互。如何来解决这个问题呢? QuickJS中,使用JSValue来表示这种变量。因此,JSValue是一个JavaScript变量的代表。它既可以是基础类型也可以是一个对象。它用到了引用计数,因此,明确的对它进行复制(JS_DupValue(),添加引用计数)和释放(JS_FreeValue(),减少引用计数)很重要。先看它的定义。

2022-05-01 21:36:44 2044

原创 QuickJS 数字字面量解析

背景QuickJS是Fabrice Bellard在2019年发布的一款支持ES6的JavaScript引擎。Fabrice Bellard是一位富有传奇经历的大佬。自己独立开发、发起和维护的耀眼明星项目有:FFmpeg、TCC、QEMU、JSLinux和LTEENB等等。FFmpeg是一个开源音视频处理库,提供了简单便捷统一的音视频处理接口,将广大的音视频开发程序员从音视频开发苦海中解放出来。QEMU是一个模拟器框架,绝大多数PC上的安卓模拟器都是基于它开发出来的。TCC是x86架构下,世界上最快的C语

2022-05-01 21:09:21 1227

原创 QuickJS JSString & JSAtom

QuickJS JSString & JSAtomJSString定义QuickJS中,使用JSString结构体封装了字符串变量。使用JSAtom来完成对字符串的存储和比较。QuickJS支持ASCII和Unicode两种字符串编码格式。先看下,它们的定义typedef struct JSRefCountHeader { int ref_count;} JSRefCountHeader;struct { JSRefCountHeader header; /* mus

2022-04-27 15:07:47 647

原创 QuickJS 字节码打印

QuickJS的字节码打印

2022-04-24 16:00:14 1716

原创 QuickJS 操作码

QuickJS字节码,QuickJS操作码,QuickJS

2022-04-24 11:58:00 769

原创 快速入门JavaScript

JavaScript简介JavaScript从名字上看和Java很像,实际上两者也有不少相似的地方。但是它们之间没有任何关系,就像众多周知的老婆饼里没有老婆一样。JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript是基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。JavaScript的标准是ECMAScript。2015年

2022-04-08 17:52:03 1113

原创 LVGL-在安卓上的移植

LGVL在Android上的移植

2022-03-30 11:27:03 5872 11

原创 Android WebView关于定位部分研究

啥是H5定位HTML5标准中提供Geolocation API,js中调用该API,用于获得用户的地理位置。鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。 该API被设计成即支持一次性请求,也支持反复的位置更新,以及显示的查询缓存的位置的能力。位置信息通过经纬度来呈现。需要注意的是:根据世界大地测量系统坐标[WGS84]提供地理位置信息(GPS使用的是WGS84坐标)...

2018-11-04 17:05:09 1304

原创 Volley源码阅读

Volley源码阅读如何阅读源码?关于这个,前人有很多的方法。一般我分析这类工程,首先做的第一步是打开这类工程的开发者官网,官网上都会对这个工具库进行介绍。比如,它是什么?能解决什么问题?与其它同类工具比较,有什么优点和劣势(可能有些工程不会在官网上提到这个)。想要分析它,首先要知道开发者是怎么开发它的,开发过程中使用了什么技巧,软件的架构是什么样的。还有就是教程,开发者一般都给出了使用教程。...

2018-11-03 22:11:32 128

原创 Framework概述

Framework概述Framework框架框架包含三部分:服务端客户端Linux驱动服务端服务端只要包含了两个重要的类WindowManagerService(WmS)负责各窗口的叠放次序,隐藏或者显示窗口ActivityManagerService(AmS)负责管理Activity除了这两个重要的类之外,还有两个类很重要KeyQWmS的内部类...

2018-11-03 22:10:11 586

原创 一个高仿华为天气的自定义风车View

一个高仿华为天气的自定义风车Viewimport android.animation.Keyframe;import android.animation.ObjectAnimator;import android.animation.PropertyValuesHolder;import android.animation.ValueAnimator;import android.con...

2018-11-03 22:09:10 672

原创 自定义数字输入View

有一个场景,需要输入短信验证码。So,尝试着自己设计了一个这样的View。参考了一些App,发现建设银行手机银行的短信验证码界面是我想要的。所以,设计了如下图这样两个短信输入框原型。本页图稍微有点大,可能要加载一会儿。再看一个最终的效果图。特点随输入的字符产生动画效果(如上图)额,当然,图有点糊了,看的不是很清楚。分两个场景,输入和删除输入当用户输入一个数字的时大概有两个效果...

2018-11-03 22:06:17 283

原创 Android限制输入框为电话号码(纯数字)

有需求将一个推荐联系人输入框设置为仅输入手机号码。于是乎,我想到了EditText的inputType属性。 加上之后,很好。自己测试了下没有问题。But,有一天,测试的MM突然对我说,哈哈,你的程序有Bug。我的第一反应是:怎么可能,我都已经设置为电话号码格式的呀。难道是我没有限制住输入的长度?看了下代码,没错呀,设置了android:maxLength=”11”。嗯,还是找她,看看到底是什么问

2017-05-16 17:03:34 3755 2

原创 FontMetrics与TextView.textSize的关系

确定FontMetrics与TextView.textSize的关系 { //test mode Paint testPaint = new Paint(); for (int i = 10; i < 100; i += 10) { testPaint.setTextSize(i);

2017-04-28 11:19:00 540

原创 Android 强制弹出软键盘

强制弹出软键盘工作中用到了强制弹出软键盘,在这里做一下记录**InputMethodManager imm = (InputMethodManager) getActivity()** **.getSystemService(Context.INPUT_METHOD_SERVICE);****imm.showSoftInput(passwor

2017-04-21 11:09:55 2895

原创 Android 更改ActionBar OptionsMenu中字体颜色

产品经理要更改OptionsMenu中的字体颜色。查阅各种方法,找不到很好的方法。无意中发现MenuItem中有一个setTitle(CharDequence)方法。瞬间一个激灵,嗯,就这么办了。代码如下,拿走不谢

2017-02-16 17:10:30 3566 7

转载 android有关paint属性设置

转自:http://wangchangshuai0010.iteye.com/blog/1441467/** * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色, * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法, * 大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。

2015-12-05 09:14:10 647

转载 C语言跳转到指定地址执行

//定义一个函数指针Uint32 gEntryPoint;static void (*APPEntry)(void);//将制定地址强制转换为不带参数不带返回值的值函数指针。APPEntry = (void (*)(void)) gEntryPoint;(*APPEntry)();实际上就是:首先要将0x100000强制转换成函数指针,即: 

2015-12-03 17:14:29 8465 1

原创 AsyncTask的优缺点

AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 使用的优点: 1.简单,快捷 2. 过程可控使用的缺点: 1.在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来. 2.最大并发数不超过5

2015-11-30 22:44:47 785

原创 java基础之序列化

序列化就是将一个实例化的对象的状态信息转换为可保持或传输的格式的过程(即只操作对象的属性值而不操作方法)。将一个实例化对象进行序列化操作,将其变成一个字符串流,从而可以使其可以通过socket进行传输、或者持久化到存储数据库或文件系统中;然后在需要的时候通过字节流中的信息来重构一个相同的对象。序列化的实现: 将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,imp

2015-11-29 22:52:01 414

原创 s5pv210 u-boot的那些事儿之---mem_setup.S的分析

接上一篇,这一篇写得是内存初始化。本人对ddr初始化,不是特别懂。只是勉强翻译注释。如有错误,希望高手能不吝赐教。废话不多说,贴上这该死的代码。/* * armboot - Memory Initialize Code for S5PV210/ARM-Cortex CPU-core * * Copyright (c) 2009 Samsung Electronics * * * S

2015-04-08 16:13:44 894

原创 s5pv210 u-boot的那些事儿之---lowleve_init.S的分析

最近一直在学习研究u-boot,这是我对s5pv210的u-boot的一些学习的一些列的文章中的一部分。这是我的注释代码,希望能帮到正在学习的你们。/* * Memory Setup stuff - taken from blob memsetup.S * * Copyright (C) 1999 2000 2001 Erik Mouw ([email protected])

2015-04-02 22:07:08 1019

原创 arm-linux-ld的理解

-T选项是ld命令中比较重要的一个选项,可以用它直接指明代码的代码段、数据段、bbs  段,对于复杂的连接,可以专门写一个脚本来告诉编译器如何连接。  -Ttext addr  -Tdata addr  -Tbss addrarm-linux-ld -Ttext 0x00000000 crt0.o led_on_c.o -o led_on_c_tmp.o  我们看看

2014-11-05 21:11:37 1136

转载 关于arm-linux-ld命令集

我们对每个 c 或者汇编文件进行单独编译,但是不去连接,生成很多.o 的文件,这些.o 文件首先是分散的,我们首先要考虑的如何组合起来;其次,这些.o 文件存在相互调用的关系;再者,我们最后生成的 bin 文件是要在硬件中 运行的,每一部分放在什么地址都要有仔细的说明。我觉得在写 makefile 的时候,最为重要的就是 ld 的理解,下面说说我的经验:首先,要确定我们的程序用没有用到标准

2014-11-05 20:29:13 481

转载 关于arm-linux-gcc的命令集

我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc。下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。在此之前首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程分为四个阶段:1. 预处理(Pre-Processing)2. 编译(Compiling)3. 汇编(Assembling)4. 链接(Linking)

2014-11-05 20:20:13 447

原创 配置内核支持NFS启动文件系统

最近一直在内核支持NFS分区(即编译时在File system中选中[*] Root file system on NFS),以及支持内核IP_PNP(即编译时在Networking中选中[*] IP: kernel level autoconfiguration)    File systems  --->        Network File Systems 

2014-10-01 21:08:36 2854

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除