摘要:
HTTP到底是什么? 两种最直观的印象:①、浏览器地址栏输入地址,打开网页:②、Android中发送网络请求,返回对应的内容: HyperText Transfer Protocal 超文本传输协议。HyperText,又叫超文本:在电脑中显示的、含有可以指向其它文本的链接的文本,其实也就是我们熟知 阅读全文
摘要:
Android.mk认识: 在上一次【https://www.cnblogs.com/webor2006/p/9946061.html】中学会了用NDK提供的交叉编译工程编译成Android能运行的可执行文件,下面咱们来做个实验来看一下使用静态库与动态库的区别,还是用上一次用的源文件为例: 动态库的 阅读全文
摘要:
gcc/g++/clang,相当于javac: 了解c/c++编译器的基本使用,能够在后续移植第三方框架进行交叉编译时,清楚的了解应该传递什么参数。 clang: clang 是一个C、C++、Object-C的轻量级编译器。基于LLVM (LLVM是以C++编写而成的构架编译器的框架系统,可以说是 阅读全文
摘要:
在之前已经对Java的字节码进行了非常详细而又系统的学习了,接下来开启jvm内存相关的新篇章,在一个新知识开头之前肯定得理论化的对其进行一个整体的介绍,所以摒弃浮躁,先来看看相关的理论,主要是看一下JVM内存的相关结构: 虚拟机栈:每一个方法在执行的过程中都会生成一个栈帧(Stack Frame,在 阅读全文
摘要:
在上一次【https://www.cnblogs.com/webor2006/p/9847915.html】已经通过源码的方式将动态代理字节码文件生成出来了,如下: 下面来分析一下该字节码的内容,双击打开IDE就可以反编译其字节码的内容,如下: 其中可以看到有个传一个InvocationHandle 阅读全文
摘要:
JNI_OnLoad: 调用System.loadLibrary()函数时, 内部就会去查找so中的 JNI_OnLoad 函数,如果存在此函数则调用。 JNI_OnLoad会: 告诉 VM 此 native 组件使用的 JNI 版本。 对应了Java版本,android中只支持JNI_VERS 阅读全文
摘要:
对于动态代理我想应该大家都不陌生,就是可以动态去代理实现某个接口的类来干一些我们自己想要的功能,但是在字节码层面它的表现是如何的呢?既然目前刚好在研究字节码相关的东东,有必要对其从字节码角度来审视一下。 下面先来实现一个动态代码的程序: 先新建一个接口: 接下来定义一个具体的实现类: 然后再建议一个 阅读全文
摘要:
基于栈的指令集与基于寄存器的指令集详细比对: 这次来学习一些新的概念:关于Java字节码的解释执行的一种方式,当然啦是一些纯理论的东东,但很重要,在之后会有详细的实验来对理论进行巩固滴,下面来了解一下: 现在JVM在执行Java代码的时候,通常都会将解释执行与编译执行二者结合起来进行。所谓解释执行, 阅读全文
摘要:
哈哈,经过了前面几个超级枯燥的C、C++两语言的基础巩固之后,终于来了到JNI程序的编写了,还是挺不容易的,所以还得再接再厉,戒骄戒躁,继续前行!! 第一个JNI程序: JNI是一种本地编程接口。它允许运行在JAVA虚拟机中的JAVA代码和用其他编程语言,诸如C语言、C++、汇编,写的应用和库之间的 阅读全文
摘要:
在上两篇中分别对方法重载【https://www.cnblogs.com/webor2006/p/9723289.html】和方法重写【https://www.cnblogs.com/webor2006/p/9797506.html】在字节码中的表现进行了详细的分析,其中得出如下结论:方法重载是静态 阅读全文