# AndroidImguiNew **Repository Path**: alexmmc/android-imgui-new ## Basic Information - **Project Name**: AndroidImguiNew - **Description**: 自己写的另一种imgui内部菜单实现方式,不需要悬浮窗权限,只显示在应用内部 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 14 - **Forks**: 6 - **Created**: 2023-04-27 - **Last Updated**: 2025-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, 安卓 ## README # AndroidImguiNew #### 介绍 自己写的另一种imgui内部菜单实现方式,不需要悬浮窗权限,只显示在应用内部 #### 软件架构 无 #### 原理 安卓启动Activity之前会先启动Application 所以我们创建一个继承Application的类,并且在清单文件设置全局Application 在我们继承Application的类里面实现一个Application.ActivityLifecycleCallbacks接口 这个接口可以检测所有启动的Activity的生命周期,当检测到对应的游戏Activity的时候获取 Activity对应的布局view ,然后在对应的布局view上面addview一个显示imgui的SurfaceView 这样就能添加成功了. #### 使用教程 ## 有两种方法 ## # 方法1 0. 如果你要嵌入游戏,需要以下几个步骤 1. 首先编译和和游戏同架构的so文件 2. 然后把so塞进游戏对应的lib文件夹里面 3. 修改清单文件AndroidManifest,把我们Application加上去 如果有的游戏自带Application的话,就让那个Application继承我们自己写的Application 4. 逆向后把我们编译的应用的classes.dex添加到游戏的解包目录里面,记得改名,比如classes2.dex # 方法2 # 前面0-2部分相同 3. 反编译后从MainActivity的onCreate里面复制Launcher的启动代码invoke-static {p0}, Lcom/game/ui/Launcher;->Init(Landroid/app/Activity;)V 4. 然后在游戏的Activity的onCreate里面添加上述代码记得在setContentView方法之后再添加,不然会崩溃,详情可以看视频 #### 使用说明 #### 演示图 演示1随便找的游戏
演示2