时间久了的东西老是喜欢忘记,然后又要到网上去查找,网上一写就是一堆,还是要自己记录下才行,今天把动态链接库简单说明下。    首先,库分为静态库和动态库。        1.静态链接时会把里面的函数加载到exe文件中,等程序发布时就不需要DLL文件了。程序生成一个.lib文件。     &n            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-21 18:32:57
                            
                                44阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              1 前言  windows 平台使用动态加载库来扩展功能。  动态库的使用包含静态和动态两种方式。静态不在今天讨论范围内。动态加载,通过是通过LoadLibary 或者 LoadLibaryEx,以及其他API获取模板基址。然后获取地址,转化成函数指针,然后调用。这里面有很多工作量都是重复的。比如加载函数,获取地址,定义函数指针。因为可以抽象出来,做一个类对象,来做这部分内容。  2 目标              
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-12 11:22:08
                            
                                397阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一.  静态库包括.lib和.h文件,在工程中使用静态库分为3步:<1> 在工程中加入静态库,有两种方法:      **方法一:项目设置中引用.lib,project->   setting->   link->   objec            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-29 10:56:56
                            
                                186阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Linux操作系统下动态库的生成及链接方法        Linux下动态库文件的扩展名为/".so/"(Shared Object)。按照约定,所有动态库文件名的形式是libname.so(可能在名字中加入版本号)。这样,线程函数库被称作libthread.so。静态库的文件名形式是libname.a。共享archi            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-14 17:10:23
                            
                                48阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 实现Java动态加载so库的步骤
## 1. 流程概述
在Java中,动态加载so库可以通过JNI(Java Native Interface)来实现。主要步骤如下:
| 步骤 | 描述 |
| --- | ---- |
| 1 | 编写包含native方法的Java类 |
| 2 | 使用javac编译Java类生成.class文件 |
| 3 | 使用javah生成.h头文件 |
|            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-02-28 05:06:30
                            
                                164阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # iOS加载SO动态库
动态库(Dynamic Library)是一种在程序运行时动态加载的代码库,可以包含可执行的代码和数据。在iOS开发中,使用动态库可以实现代码的模块化和动态更新,提高代码的复用性和可维护性。本文将介绍iOS如何加载SO动态库,并提供代码示例。
## 1. 动态库的类型
在iOS开发中,有两种类型的动态库:动态链接库(Dynamic Link Library,简称DL            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-01-11 10:11:40
                            
                                1412阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录一、动态链接库预加载型rootkit概述 二、动态链接库预加载型rootkit所用技术2.1 linux动态链接库预加载机制2.2 全局符号介入2.3 rootkit利用的技术点三、动态链接库预加载型rootkit3.1 利用LD_PRELOAD加载恶意动态链接库3.2 利用/etc/ld.so.preload加载恶意动态链接库3.3 修改动态链接器来实            
                
         
            
            
            
            什么是程序库? 程序库是写好的,成熟的,可以复用的可执行代码集的二进制形式,可以被操作系统载入内存,被别的程序调用执行。比如STL(Standard Template Library)。C/C++的程序库有两种:静态库和动态库。将一个程序编译成可执行文件一般经过:预编译–>编译–>链接 这几个过程,而静态库与动态库的区别主要体现在链接这个过程。静态库: 在链接阶段,会将编译的目标文件.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-11 10:12:09
                            
                                54阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言虽然之前公司的项目有用到动态加载技术,但是并没有太在意,今天突然看到别人的app中有用到动态加载,打算了解一下。概述Android使用Dalvik虚拟机加载可执行程序,所以不能直接加载基于class的jar,而是需要将class转化为dex字节码,从而执行代码。优化后的字节码文件可以存在一个.jar中,只要其内部存放的是.dex即可使用。实验步骤Android Studio为IDE1.创建动态            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-24 22:01:22
                            
                                227阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
              当要加载一个较大的场景,长时间等待势必会影响用户体验,并且一个较大场景全部加载到场景中也会影响操作流畅度。不可避免的需要用一个技术就是在Unity中进行动态的加载场景中的资源。  当然本文的动态加载场景资源,是以玩家为中心,玩家的视野为半径进行加载。首先让美术将整个场景以一定的格式写入XML文件中,然后在程序开始运行时读取美术给我们提供的XML文件,然后遍历这个xml文件中的所有节点找到所有处            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-13 12:25:52
                            
                                525阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            最近一直比较忙,博客没及时写。最近项目中用到了动态加载布局,今天闲下来记录一下自己的学习经历吧。ListView我们一直都在用,只不过当Adapter中的内容比较多的时候我们有时候没办法去设置一些组件,举个例子:可以看到京东的故事里面的这样一个布局,这个布局可以说是我目前见到的内容比较多的了,它的每一项都包含头像、姓名、分类、内容、图片、喜欢、评论、分享以及喜欢的头像。分析了一下布局之后我们不难发            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-26 23:06:18
                            
                                97阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            动态引入so库为什么要动态引入so库?遇到的问题:因为要做一些系统级别的工具,所以要调用一些系统的so库,如果把so库直接放在lib目录下的话,在android程序启动的时候会默认加载lib目录下的所有库,但是这些so库会在一些地方存在冲突,所以为了解决这个冲突的问题,就使用动态加载so库的方式,通过一些条件的判断是否要加载这个so库。如何动态加载so库?1.首先把so库放在assets资源目录下            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-29 12:56:24
                            
                                195阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            静态加载:如果你有a.dll和a.lib,两个文件都有的话可以用静态加载的方式: message函数的声明你应该知道吧,把它的声明和下面的语句写到一个头文件中#pragma comment(lib, "a.lib")然后你的对话框.cpp中包含这个头文件就可以使用message函数了。动态加载:如果dll没有对应的.lib文件,那么就只能使用动态加载的方式了。动态调用动态库步骤:1、创建一个函数指            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-13 22:49:41
                            
                                143阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.编写并生成Android下可用的动态库 
  (1)编写动态库源程序文件 
      这里以my_add.c为例。首先进入/home/android/development/,该目录下创建文件夹lib_test,更爱该目录的权限后进入该目录。依次执行 
  # 
     cd /home/android/development            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-25 23:59:42
                            
                                183阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            cluster-autoscale以deploy的形式运行在客户集群中。其每隔10秒钟,触发一次下方的函数。Autoscaler对象的 RunOnce(currentTime time.Time)函数准备、清理  清除上次运行的残留1)删除节点的taint "ToBeDeletedByClusterAutoscaler"(缩容的时候,确认要移除的节点会打上该污点)1)获取“未注册节点”&            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-11 19:52:59
                            
                                59阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ## 动态加载SO库的实现流程
为了实现SO库的动态加载,我们需要以下步骤:
```mermaid
flowchart TD
    A(创建一个Android项目) --> B(创建一个C/C++项目,将生成的动态库文件拷贝到Android项目的jniLibs目录下)
    B --> C(通过JNI在Java代码中调用C/C++动态库)
```
### 第一步:创建一个Android项            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-11-29 15:45:50
                            
                                161阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在进行Python开发过程中,常会遇到“python加载动态库.so找不到”的问题,尤其是在进行与C/C++代码的交互时。这篇博文将详尽记录我在解决这一问题时的整个过程,包括背景描述、技术原理、架构解析、源码分析、应用场景及扩展讨论。
### 背景描述
回顾2023年3月,我在某个项目中需要用Python调用一个用C编写的动态库,但运行时却遇到了库文件找不到的错误。在继续深入探讨该问题时,我意            
                
         
            
            
            
            Spring中主要使用cglib和jdk动态代理,主要在SpringAop中有大量应用。JDK动态代理jdk动态代理主要使用场景是被代理的对象有实现的接口。最终生成的代理类:class $Proxy0 extends Proxy implements IDao jdk动态代理主要是基于反射,其实我们完全可以自己模拟;其中两个比较关键的思路:使用反射解析目标对象的属性、方法等根据解析的内容            
                
         
            
            
            
            目录 找不到.so解决方法 方法一:添加环境变量 方法二:复制so文件到lib路径 方法三:(推荐)添加ldconfig寻找路径 方法四:在编译目标代码时指定该程序的动态库搜索路径 其他命令 查看程序依赖的.so库 查看动态库连接过程 查看一个so链接库的版本...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-01-26 15:24:00
                            
                                2281阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            在开发过程中,经常会用到第三方库,比如地图、视频、文档编辑、图表之类。依赖这些库,需要添加其SDK,有时需要用到jni层的So文件,比如百度地图等。 那么问题来了,如果两个不同的库之间的so文件发生冲突这么办? 比如:单独添加地图的库,运行没有问题。单独添加一个视频库,运行没有问题。但两者同时添加,            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-12-16 13:32:24
                            
                                1491阅读