240 发简信
IP属地:浙江
  • Android NDK 开发中正确释放 JNI 对象

    获取字符串 错误❌:没有正确释放,会导致内存泄漏 正确✅:必须调用 ReleaseStringUTFChars 释放 错误❌:Release 之后就不能再使用 正确✅:可以把...

  • 120
    onConfigurationChanged方法介绍及问题解决

    作者简介 原创微信公众号郭霖 WeChat ID: guolin_blog 又是周五啦,提前祝大家周末愉快! 本篇有关onConfigurationChanged 方法的分析...

  • 120
    Kotlin协程原理解析

    Kotlin协程实际上是所谓的stackless协程,即没有在线程之上实现类似线程栈的结构,可以认为是一种kotlin语言层面支持的 线程调度框架,使用这个框架,我们可以省去...

  • 120
    Android SurfaceFlinger SW Vsync模型

    Android SurfaceFlinger Vsync这块比较复杂,最初在看这块的时候,迟迟不知道从何入手,网上看了各种SurfaceFlinger Vsync相关的博客,...

  • [007]一次Binder通信最大可以传输多大的数据?

    前言 在第六章中,我通过匿名共享内存的方式解决Binder通信是无法传递大数据的问题,一次Binder通信最大可以传输是1MB-8KB(PS:8k是两个pagesize,一个...

  • Binder驱动之内存映射`binder_mmap`

    一 内存映射函数的实现 binder_mmap(kernel/drivers/android/binder.c) 打开binder后,需要调用mmap进行内存映射,该函数经过...

  • 120
    HTTP2和HTTPS来不来了解一下?

    一、前言 只有光头才能变强 HTTP博文回顾: PC端:HTTP就是这么简单 PC端:HTTP面试题都在这里 微信公众号端:HTTP就是这么简单 微信公众号端:HTTP面试题...

  • 120
    探索Activity之生命周期

    作为一个Android应用开发人员, 自不必说, Activity是我们应用的门面, 我们90%的工作都围绕它进行, 用它来呈现内容, 用它来与用户交互... 那么我们真的了...

  • 您好,我想请问一下,您文章中使用的代码是基于哪个版本的?

    ANR监测机制

    相关背景知识: Android消息机制、Android输入系统、Service工作流程、Broadcast工作流程。 ANR概述 首先,ANR(Application Not...

  • 你好,我想问一下,Sophix没有进行Dex的全量更新会不会产生CLASS_ISPREVERIFIED的问题?

    震惊!阿里热更新框架 Sophix 背后隐藏的真相竟然是……

    移动互联网市场日趋成熟,移动产品研发进入平稳发展阶段,这意味着开发者的思维和研发模式也应转入下半程。安全领域技术在开发中的应用一直是操作系统平台发展周期中的重要一环。热...

  • @嘟嘟赌起 没有报错,你看我代码
    我使用了PathClassLoader来加载一个外部的apk成功了

    DexClassLoader和PathClassLoader的区别

    先说结论 1、DexClassLoader可以加载jar/apk/dex,可以从SD卡中加载未安装的apk2、PathClassLoader只能加载系统中已经安装过的apk ...

  • 博主,按照你的结论以下代码是跑不通的,但是我在6.0的模拟器上跑了一下是没问题的。这是什么原因?
    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    File cacheDir = getExternalCacheDir();
    File apkDir = new File(cacheDir, "/apk/");
    File odexDir = new File(cacheDir, "/odex/");
    File apkFile = new File(apkDir, "app-debug.apk");

    apkDir.mkdirs();
    odexDir.mkdirs();
    try {
    apkFile.createNewFile();
    Source s = Okio.buffer(Okio.source(getAssets().open("app-debug.apk")));
    Sink sink = Okio.buffer(Okio.sink(apkFile));
    ((BufferedSource) s).readAll(sink);
    sink.flush();
    sink.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    ClassLoader dexClassLoader = new DexClassLoader(apkFile.getPath(),odexDir.getPath(),null,getClassLoader().getParent());
    ClassLoader pathClassLoader = new PathClassLoader(apkFile.getPath(),getClassLoader().getParent());
    try {
    dexClassLoader.loadClass("com.netease.epay.sdk.base.network.HttpClient");
    pathClassLoader.loadClass("com.netease.epay.sdk.base.network.HttpClient");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    }
    }

    DexClassLoader和PathClassLoader的区别

    先说结论 1、DexClassLoader可以加载jar/apk/dex,可以从SD卡中加载未安装的apk2、PathClassLoader只能加载系统中已经安装过的apk ...