首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

APK编译工具_exe反编译工具

其中executable表示可执行版,需要安装使用。embeddable表示嵌入版,就是解压以后就可以使用的版本。推荐使用executable可执行版本,一直默认即可。...— 需要解包的apk路径, 例如C:\1.apk -f —— 强制覆盖,若outputDir路径已经存在,会清空outputDir指向的文件夹内的所有内容 -o —— 指定输出目录为紧跟在-o的路径...2)输入控件 Line Edit:单行文本框,输入单行字符串。 控件使用Text() 返回文本框内容。setText() 设置文本框显示内容。...ToolButtonTextBesideIcon 文字显示图标的旁边。 ToolButtonTextUnderIcon 文本显示图标下边。...3、创建反编译界面 1)、 通过双击菜单栏的Type Here可以添加一级菜单。点击一级菜单的+号,可以添加二级菜单。

5K10
您找到你想要的搜索结果了吗?
是的
没有找到

【Jetpack】ViewBinding 与 DataBinding 简单对比

可以 Activity / Fragment / Dialog 获取组件 , Xml 布局文件 设置点击事件 , 设置文本 , 设置可见性 等等 ; 二、ViewBinding ViewBinding...是 2019 年 Android Studio 3.6 版本 开始使用的 , 其作用是 为 Xml 布局文件 生成绑定类 , 借助该 绑定类 , 可以 快速获取 Xml 的组件 ; ViewBinding...可以代替的代码逻辑 : findViewById 定义 View 组件的成员字段 ViewBinding 与 ButterKnife 功能基本一致 , 编译性能优于 ButterKnife , 因为...ButterKnife 中使用了大量的注解 , 其编译速度要低于 ViewBinding ; ViewBinding 与 DataBinding 比较 , ViewBinding 是一个量级较轻的函数库...; 集成 DataBinding 要比 ViewBinding 编译速度慢很多 ; 集成 DataBinding 编译Apk 要比 ViewBinding 大几十 KB ; 如果只是想要省略 findViewById

33220

五年Android开发,让我“刻骨铭心”的那些坑

解决方案:如果在某个地方需要同时执行多个异步任务,强烈建议使用线程池; 数据库升级的坑: 问题现象:在数据库的某个表增加/修改了某个字段,程序在运行时崩溃掉了;或者增加字段时修改了数据库的版本号...程序未启动的情况下,静态注册的广播无法收到消息: 问题现象:程序添加了对开机广播的监听,但无法接收到; 原因分析:这个问题只有程序安装但没有启动时才会出现,只要程序启动过一次就不会有这个问题。...(int value)的传值有问题,xml文件没有找到id对应的字符串; 解决方案:给TextView设置文本的时候一定要转成String或者Charsequence类型,避免TextView将setText...通过反射访问方法和字段的效率大不一样: 问题现象:程序运行卡、慢; 原因分析:一个循环中使用到了反射,并且是调用的反射方法,改成反射字段,卡、慢的现象得到明显的改善; 解决方案:通过反射修改或者获取类的某个属性时...但需要谨慎使用这两个属性,否则可能会导致编译生成的APK特别大(解压生成APK发现,对于有问题的图片,每个drawable文件夹下都会拷贝一份); 解决方案:去掉属性设置,解决编译问题。

1.4K40

提高10倍开发效率?APT如何让Android开发变得更轻松

APT的基本原理 APT的基本原理是在编译期间扫描和处理源代码的注解,然后根据注解生成相应的Java代码。这些生成的代码可以在编译编译器包含到最终的APK。...生成代码: 接着,根据注解的信息,APT会生成相应的Java代码。 编译代码: 最后,生成的Java代码会被编译编译成.class文件,与其他源代码一起构建成APK。...RetentionPolicy.CLASS: 注解保留在编译的class文件,但在运行时会被忽略,默认值。Kotlin对应的是BINARY。...RetentionPolicy.RUNTIME: 注解保留在编译的class文件,并且在运行时可以通过反射获取到。...,我们使用了@BindView注解来标记TextView字段,然后onCreate方法调用Butterknife.bind(this)方法,即可自动为textView字段进行赋值,无需手动调用findViewById

10410

信息提醒之Toast-更新

概述 Toast与对话框类似,也会在屏幕的某个位置弹出一个窗口,在窗口中可以显示文本、图片等信息 与对话框不同的是,Toast信息提示框不可获得焦点,而且显示一定的时间后会自动关闭。...由于Toast没有按钮,也无法通过手机按键关闭Toast,所以只能通过显示时间的长短来控制Toast信息提示的时间自动关闭。...注意:创建只显示文本的Toast对象时,建议使用Toast.makeText方法,而不要直接new Toast对象,虽然Toast类有setText方法,但是不能在使用new关键字创建Toast对象后设置...一下代码会抛出异常 Toast toast = new Toast(); toast.setText("文字");// 此行代码会抛出异常 toast.show(); 显示文本和图像的Toast- setView...center" android:layout_margin="10dp" /> LinearLayout> 如果同时多个Toast信息提示框,系统会将这些Toast信息提示框放到队列

63550

Android程序,内嵌ELF可执行文件--Android开发C语言混合编程总结

NDK在编译的时候,会自动编译多个不同CPU需要的动态链接库。并都打包在最终的APK文件不同的Android系统安装的时候,会自动选择正确的CPU类型安装其中一种。...常量字符串虽然简便,但无法完成多国语言自动切换等基本功能,正式的项目中应当避免这样使用。...[second_run1.png] 点击CALLJNI按钮文本框显示的信息表示JNI正常执行了。...在当前的Android版本APK程序内嵌可执行文件,需要通过以下几个步骤: NDK编译对应的源代码。...或者在其它语言环境使用对应工具,生成Android环境可以执行的二进制代码。 除了.so之外的编译结果,并不会自动打包到APK

1.8K40

Android Studio的Gradle配置不同服务器地址以生成不同安装包”

比如 开发服务器使用 192.168.1.232服务器, 测试服务器使用 192.168.1.245服务器, 正式上线服务器地址是http://xxxx.com。  ...技术关键词: buildConfigField, BuildConfig 思路: gradle脚本使用 buildConfigField 声明一个字段编译成功,会为这个字段生成静态常量,我们可以代码中使用这个常量...而在成功build,gradle会为 美工不同的类型环境生成不同的apk包,比如一次性就生成了 测试,开发,上线三个apk包。...,这是为了 代码编译的方便,使得各个环境下都有 API_HOST 这个字段。...buildConfigField("String", "API_HOST", ""http://192.168.1.232"") 3.开始 build ,完成,可以代码中使用: String str

1.8K00

深入Android Runtime: inline优化与字符串

Android,字符串是存在dex文件的,以String表进行存储,通过StringID可以查找到对应的String。...如果我们注入了另外一个包含相同类的dex文件,那么如果是解释模式下执行,调用test1时,就会在新的dex中找到test1方法,而这个test1方法的字符串索引是相对于这个dex而言的,而不是apk...这样我们编译时产生的机器码实际上依赖的是早先apk自身的Test类的代码,而运行的时候是执行的注入dex的代码,虚拟机解析这个0x4ee2字符串索引时候,会从注入的dex的字符串常量池中查找,实际上这个...由于无法通过索引0x4ee2找到字符串,虚拟机会在产生一个无效的地址,这个地址指向的也许是另外一个字符串,也许指向的是一块非法的内存,那么我们再将这个字符串读出来写到文本框时,就会引发不可预知的异常(代码里的...总结 我们使用不同jar/dex中新的class覆盖旧的class时,需要注意,inline场景下,编译器会将一些索引硬编码到机器码,导致与运行时的数据不一致。

1.8K30

Android程序,内嵌ELF可执行文件-- Android开发C语言混合编程总结

NDK在编译的时候,会自动编译多个不同CPU需要的动态链接库。并都打包在最终的APK文件不同的Android系统安装的时候,会自动选择正确的CPU类型安装其中一种。...常量字符串虽然简便,但无法完成多国语言自动切换等基本功能,正式的项目中应当避免这样使用。...点击CALLJNI按钮文本框显示的信息表示JNI正常执行了。 解析包含JNI库的APK安装文件 先上一张apk包的文件结构图片吧: ?...在当前的Android版本APK程序内嵌可执行文件,需要通过以下几个步骤: NDK编译对应的源代码。或者在其它语言环境使用对应工具,生成Android环境可以执行的二进制代码。...除了.so之外的编译结果,并不会自动打包到APK。所以编译出的二进制代码,需要作为数据文件,放入APK的资源区。

1.6K40

资源的插件化

1.android资源文件分为两类: 第一类是res目录下存放的可编译资源文件,编译时,系统会自动R.java中生成资源文件的十六进制值 Resources resources = getResources...(); String appName = resources.getString(R.string.app_name);         第二类是assets目录下存放的原始资源文件,apk编译时不会编译...AssetManager的addAssetPath方法会在app启动的时候把当前apk的路径传进去,就能访问apk的所有资源了。...,构造出插件类的对象dynamicObject,然后就可以让插件的类读取插件的资源了 mLoadClassDynamic = classLoader.loadClass...生成不同的ClassLoader,然后通过反射框架取出相应的资源,最终加载显示 doSomething还有另外一个种写法,直接访问R.java的内部类drawable/string/layout的相应字段对应的十六进制值

1K20

干货二:微信SDK-分享初探-更新

提交申请 使用注册的开发者账号登录: ? 创建应用: ? ? 接下来就等着微信审核了,上传图标的时候,我用了微信的案例图标,不知道会不会审核不通过 o(╯□╰)o 果然被枪毙了…....特别注意: 申请应用的时候填写的应用签名,这个签名是由应用的签名文件keystore决定的,填这个签名的时候,一定要用正式的keyStore生成apk,安装到手机,然后用微信提供的获取应用签名的apk...生成APK,安装到手机,再分享下,good ,233333333333…. ---- 添加微信SDK到工程 微信SDK下载 ? 下载解压,我们可以看到 ?...第二种方式: 复制jar,到app— —src— —main— —libs文件夹下 AS工程右键点击要添加的jar,弹出菜单中点击Add As Library....我这里并没有登录~ ---- 分享文本到好友或朋友圈 TIP:记得使用release版本来测试 亲 Code 核心代码: /** * 发送文本到微信 * * @param

64620

Android使用ViewBinding

前言 原始方式 我们的开发过程,需要获取XML布局文件的ViewId,以便其赋值显示,我们习惯使用findViewById进行操作,可这样会导致很多的模版代码出现。...ViewBinding 使用编译时生成的绑定类, xml 布局文件的每个视图都会生成一个对应的绑定类对象,因此在编译时检测到视图名称的错误。...ViewBinding 不会增加 APK 大小,因为它只是编译时生成的代码。 多个模块引用同一个视图时可能会出现命名冲突的问题,需要通过手动指定全限定名解决。...Kotlin扩展 会增加 APK 的大小,因为它是在运行时动态添加的函数。 总体而言 ViewBinding 类型安全性和编译时错误检测方面比 Kotlin扩展 更好。...ViewBinding 原理就是 Google在那个用来编译的gradle插件增加了新功能,当某个module开启ViewBinding功能编译的时候就去扫描此模块下的layout文件,生成对应的

46421

Android视图绑定ViewBinding的使用

概述 我们的开发过程,需要获取XML布局文件的ViewId,以便其赋值显示,我们习惯使用findViewById进行操作,可这样会导致很多的模版代码出现。...module获得XML布局文件对应的绑定类 gradle文件开启ViewBinding功能,编译器就会为此模块下的每个布局文件都产生一个对应的绑定类。...就是Google在那个用来编译的gradle插件增加了新功能,当某个module开启ViewBinding功能编译的时候就去扫描此模块下的layout文件,生成对应的binding类。...总结 目前ViewBinding的功能还不够完善,比如XML中使用了 inClude 标签时无法对view进行引用。但总体来说已经很不错了。...而且 ViewBinding 使用的过程不存在类型转换以及空指针异常的问题。因为绑定类已经全部定义好了,开发者直接使用就可以。 ----

2.5K10

Android视图绑定ViewBinding的使用

概述 我们的开发过程,需要获取XML布局文件的ViewId,以便其赋值显示,我们习惯使用findViewById进行操作,可这样会导致很多的模版代码出现。...module获得XML布局文件对应的绑定类 gradle文件开启ViewBinding功能,编译器就会为此模块下的每个布局文件都产生一个对应的绑定类。...就是Google在那个用来编译的gradle插件增加了新功能,当某个module开启ViewBinding功能编译的时候就去扫描此模块下的layout文件,生成对应的binding类。...总结 目前ViewBinding的功能还不够完善,比如XML中使用了 inClude 标签时无法对view进行引用。但总体来说已经很不错了。...而且 ViewBinding 使用的过程不存在类型转换以及空指针异常的问题。因为绑定类已经全部定义好了,开发者直接使用就可以。

2.7K20

【谷歌官方文档】1.1 建立第一个APP

编译并运行该项目,Activity启动并加载布局文件activity_my.xml,显示一条文本:"Hello world!".../gradlew assembleDebug 编译完成app/build/outputs/apk/目录生成apk。 Note: chmod命令是给gradlew增加执行权限,只需要执行一次。...应用程序被编译之后,SDK 就可以直接使用这个 ID。edit_message 是项目文件 gen/R.java 创建一个新的标识符,这个标识符和 EditText 关联。...(建立简单的用户界面),我们已经拥有了显示一个activity(一个界面)的app(应用),该activity包含了一个文本字段和一个按钮。...Android Studio,按Alt + Enter 可以导入缺失的类(Mac中使用option + return) 5 把EditText的文本内容关联到一个本地 message 变量,并使用

2.4K20

深入Android Runtime: 指令优化与Java方法调用

这个methodID是存储apk自身的dex的,每个dex中都有一个String表和Method表(当然还有Class表等其他表)。...那么正常debug版本解释执行时,这个过程是没有任何问题的,包括使用新的类覆盖了旧的类的时候,仍然可以通过自身编译时就决定的methodID拿到正确的方法名,也就可以获取到正确的method并执行。...因为我们是动态加载了dex,这个dex只有classloader加载dex时才会被发现,dex2oat编译时只知道apk自身的class的存在。...但是如果apkManifest设置了android:vmSafeMode=”true” ,那么无论是否使用了其他模式进行强制编译apk会始终以interpret-only方式编译,导致问题一直存在...比如我们使用speed编译,日志依然是interpret-only: ? ?

2.1K70
领券