andriod 加载apk过程

ionic4如何打包成Andriod平台下的apk文件 目录(大致分为6个步骤) 1.搭建环境 2.安装AndroidStudio 3.构建安卓平台 4.构建项目 5.解决cordova问题 6.安装生成的apk文件 7.注意事项 前言 发布需要用到的AndroidSdk和Gradle的确存在版本匹配的问题,但是执行下面的步骤程序会自适应版本 1.搭建环境 1.1安装nodejs。 1.2安装npm/... 阅读详情

Android apk默认加载过程


public final class LoadedApk {

    private static final String TAG = "LoadedApk";

    private final ActivityThread mActivityThread;
    private ApplicationInfo mApplicationInfo;
    final String mPackageName;
    private final String mAppDir;
    private final String mResDir;
    private final String[] mSharedLibraries;
    private final String mDataDir;
    private final String mLibDir;
    private final File mDataDirFile;
    private final ClassLoader mBaseClassLoader;
    private final boolean mSecurityViolation;
    private final boolean mIncludeCode;
    private final DisplayAdjustments mDisplayAdjustments = new DisplayAdjustments();
    Resources mResources;
    private ClassLoader mClassLoader;//默认加载器

    LoadedApk(ActivityThread activityThread) {
        mActivityThread = activityThread;
        mApplicationInfo = new ApplicationInfo();
        mApplicationInfo.packageName = "android";
        mPackageName = "android";
        mAppDir = null;
        mResDir = null;
        mSharedLibraries = null;
        mDataDir = null;
        mDataDirFile = null;
        mLibDir = null;
        mBaseClassLoader = null;
        mSecurityViolation = false;
        mIncludeCode = true;
        mClassLoader = ClassLoader.getSystemClassLoader();
        mResources = Resources.getSystem();
    }

                mClassLoader =
                    ApplicationLoaders.getDefault().getClassLoader(
                        zip, libraryPath, mBaseClassLoader);
                initializeJavaContextClassLoader();

                StrictMode.setThreadPolicy(oldPolicy);
            } else {
                if (mBaseClassLoader == null) {
                    mClassLoader = ClassLoader.getSystemClassLoader();
                } else {
                    mClassLoader = mBaseClassLoader;
                }
            }
            return mClassLoader;


ClassLoader.java

 protected ClassLoader() {
        this(getSystemClassLoader(), false);
    }
   static private class SystemClassLoader {
        public static ClassLoader loader = ClassLoader.createSystemClassLoader();
    }

    public static ClassLoader getSystemClassLoader() {
        return SystemClassLoader.loader;
    }

    private static ClassLoader createSystemClassLoader() {
        String classPath = System.getProperty("java.class.path", ".");

        // String[] paths = classPath.split(":");
        // URL[] urls = new URL[paths.length];
        // for (int i = 0; i < paths.length; i++) {
        // try {
        // urls[i] = new URL("file://" + paths[i]);
        // }
        // catch (Exception ex) {
        // ex.printStackTrace();
        // }
        // }
        //
        // return new java.net.URLClassLoader(urls, null);

        // TODO Make this a java.net.URLClassLoader once we have those?
        return new PathClassLoader(classPath, BootClassLoader.getInstance());
    }

参考:
http://blog.youkuaiyun.com/jiangwei0910410003/article/details/48104455

【HBuilder+Andriod Studio】打包成APK HBuilder+Andriod Studio 打包成 apk,安装到Andriod端即可使用 阅读详情

相关推荐

andriod逆向入门 | JEB静态分析APK

通过观察我们可以得知,在URL中存在一些特征字符串,比如/api/movie,我们可以通过搜索特征字符串,进行快速定位,在smali代码窗口 ctrl+F打开查找窗口,直接查找/api/movie。可以看到,从大致的英文上看,是声明一个静态的String类型变量,变量名为indexPath,值为/api/movie,不懂的话也可以问AI,静态的话一般是叫做常量,不可更改。环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等。

2301_80115097的博客 834

Android 运行时资源的访问 | 开发者说·DTalk

本文原作者: DebugCat,原文发布于微信公众号: DebugCathttps://mp.weixin.qq.com/s/GCoSUNXSRYyco9yWTng3XQ从一行代码说起...

谷歌开发者 831

动态加载Apk、Jar

通过自定义ClassLoader,实现动态加载apk,jar包功能。

史上最强面向 【Android 高级工程师】的一份面试宝典,大量面试题+详细解析 (没用你打我!)(2)

JavaJava 基础。

2401_84123077的博客 600

Android动态加载(下)——加载已安装APK中的类和资源

NULL 博文链接:https://android-zhang.iteye.com/blog/1979525

dynamic-load-apk:动态加载 apk

#动态加载 Apk 框架 ##动态加载apk框架可以加载本地apk文件,启动目标apk活动,使用资源和资产 ##Thanks for ##base of this: ##I add apk md5 check(如果运行时更改apk文件,即使是相同的类文件也会导致ClassCastException) #How To ##1.在您的应用程序中,使用 PluginManager 加载您的 apk 文件 ##2.then 使用 PluginManager startActivity 调用 apk 文件中的虚拟活动 #Know Issues ##1.在某些设备中,框架会执行 dexOpt 操作,这将导致您的应用程序和目标 apk 库折叠之间的类文件不同。 所以,如果出现这个问题,不要用lib模块编译,而是在目标apk库中添加dynamic-load.jar ##2.现在只支持Activity

APK的加载流程

文章目录我们前面说过APK可以分为代码与资源两部分,那么在加载APK时也会涉及代码的加载和资源的加载,代码的加载事实上对应的就是Android应用进程的创建流程,关于这一块的内容我们在文章01Android进程框架:进程的创建、启动与调度流程已经分析过,本篇文章 我们着重来分析资源的加载流程。我们知道在代码中我们通常会通过getResource()去获取Resources对象,Resource对象...

wyman的博客 2480

android apk安装流程及解析

android apk的安装过程分析

Android APK加载流程

我们前面说过APK可以分为代码与资源两部分,那么在加载APK时也会涉及代码的加载和资源的加载,代码的加载事实上对应的就是Android应用进程的创建流程,关于这一块的内容我们在文章01Android进程框架:进程的创建、启动与调度流程已经分析过,本篇文章 我们着重来分析资源的加载流程。 我们知道在代码中我们通常会通过getResource()去获取Resources对象,Resource对象是应...

w2064004678的博客 1528

Android 免安装动态加载APK

使用说明请参看 http://blog.csdn.net/happyst1990/article/details/51146301

Solidworks钣金设计:折弯系数、K因子与折弯扣除的实战应用解析

本文深入解析Solidworks钣金设计中折弯系数、K因子与折弯扣除的核心概念与实战应用。通过厘清三者间的逻辑关系与换算方法,并结合材料特性、工艺参数及车间实测,指导工程师精准确定展开长度,确保设计图纸与加工实物的一致性,有效提升钣金件设计精度与生产效率。

weixin_29268267的博客 924

Android 应用加载apk的所有资源

如何在 Android 应用中加载 APK 的所有资源 在移动开发中,Android 提供了丰富的功能和灵活的架构。偶尔,我们可能需要在应用中动态加载其他 APK 文件中的资源,尤其是在插件化架构中。本文将带领你通过以下步骤实现这一目标。 整体流程 以下是实现加载 APK 资源的基本步骤: 步骤 描述 1 加...

weixin_40414679的博客 479

Word多级标题出现黑块的解决思路(word 数字必须介于1-1638之间)

遇到多级目录出现黑块问题,看到一篇博客完美解决,在此记录。

AI_Optimization的博客 3716

记一次Andriod的apk逆向

记一次Andriod逆向 前言 之前看安全客的时候,发现有大佬逆向了一个流氓app,觉得反看一手app很有意思,趁着下午空闲,自己也试着研究了一下如何逆向Andriod的App,好不容易挑了个流氓软件,挑去过程请省略。。。 正文 首先介绍一下下面要用到的三款工具 apktool :作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar :作用:将apk反编译成java源码(classes.dex转化成jar文件) jd-gui : 作用:查看APK中classes.dex转化成

crispr的博客 826

RDKit | 基于Pytorch和RDKit建立QSAR模型

QSAR 定量构效方法(quantitative structure-activity relationship, QSAR)是应用最为广泛的药物设计方法。所谓定量构效方法就是通过一些数理统计方法建立其一系列化合物的生理活性或某种性质与其物理化学性质之间的定量关系,通过这些定量关系。可以预测化合物的生理活性或某些性质,指导我们设计出具有更高活性的化合物。 早在...

DrugOne 5078

车载以太网网络测试-24【SOME/IP概述】

SOME/IP**(Scalable Service-Oriented Middleware over IP)是一种基于IP网络的面向服务的通信协议,专为汽车电子系统设计,支持服务发现、远程过程调用(RPC)和事件通知等功能。核心标准是由 AUTOSAR(汽车开放系统架构)定义,现已成为车载通信的重要标准之一(如AUTOSAR 4.0+)。SOME/IP的全称是,它是一种基于IP网络的面向服务的通信协议,广泛应用于汽车电子(AUTOSAR)和物联网领域。Scalable(可扩展的)含义。

车载网络测试工程师的博客 2192

Andriod APK体积优化

随着项目的不断迭代,功能越来越多,构建出来的apk文件的大小也会越来越大,这样会导致在移动网络情况下下载时,使用的网络流量会增大,并且apk太大,导致下载的时间也增加,虽然当前每个人的手机的流量都很多,对用户流量影响不大,但是据一些网站统计,安装包越大,用户的转化率是在降低的,所以减少apk的体积,可以让更多的用户愿意去下载和体验产品。所以,对apk体积进行瘦身还是很有必要的。在对apk体积进行瘦...

hujin2017的博客 929

备考路上的学习笔记:我的软考高级架构师复盘与更新计划

本专栏基于作者备考软考高级系统架构设计师的真实经验,分为考前突击、基础夯实、核心突破、案例实战和论文通关五大模块。内容涵盖计算机体系结构、操作系统、数据库等核心知识,提供案例解析和论文范文。作者承诺持续更新考纲内容、真题复盘及互动答疑,旨在帮助考生系统备考,将个人踩坑经验转化为实用指南,陪伴考生共同完成从知识碎片到体系构建的蜕变历程。

qq837993702的博客 2295

andriod 集成三方apk(BaiduNetworkLocation.apk)

前言: 一開始因爲

weixin_42271802的博客 1660

RK3588开发笔记-麦克风阵列多pdm通道合并成一个声卡

在音频设备的开发中,特别是在多通道音频数据处理场景中,如何将多个PDM(Pulse Density Modulation)通道整合成一个声卡设备,是一个非常具有挑战性的问题。RK3588芯片作为一款性能强大的平台,提供了对多个音频通道的支持。本文将介绍如何在RK3588上将多个PDM通道合并成一个麦克风阵列声卡,从而在Linux系统下统一管理和使用,提高多通道音频的同步性。在本文中我们主要介绍使用2通道回采+4通道mic声音采集构成一个6通道声卡,加以回声消除实现一个多麦克风阵列。

flypig has a dream! 1926

【AFAC2026金融智能-赛题二】2亿像素的面条图,我切了1000刀拼回完美Markdown

摘要: AFAC2026金融智能创新大赛的「复杂金融文档还原挑战」任务是将高分辨率金融文档截图转换为结构化Markdown文本。面对2亿像素的“面条图”和严格的计算限制(禁用主流大模型,仅允许调用FinixDoc-VL API且模型需小于10M),作者提出四层流水线解决方案: 图像预处理:通过文本行投影检测在行间隙处智能切图,避免截断文字; API调度:5路并发轮询请求,结合内容哈希缓存与指数退避重试机制优化调用效率; 后处理:采用最长公共子串匹配去除文本重叠,并设计表格对齐算法修复跨块表格; 结果输出:按

170

pc下载apk文件到andriod开发板,并实现可视化

pc下载apk文件到andriod开发板,并实现可视化

shouchen1的博客 935

FFMPEG音频开发: Linux下采集摄像头(使用V4L2框架)数据录制成MP4视频保存到本地

一、环境介绍 操作系统介绍:ubuntu 18.04 FFMPEG版本: 4.4.2 摄像头: USB摄像头、虚拟机挂载本机自带摄像头 二、FFMPEG与X264下载编译 X264下载地址: http://www.videolan.org/developers/x264.html FFMPEG下载地址:https://ffmpeg.org/download.html Yasm ...

8872

andriod的apk文件编译反编译工具及步骤

apk文件反编译工具和步骤小结 APK反编译工具下载: 1. apktool下载后解压即可使用。    下载地址: http://code.google.com/p/android-apktool/downloads/list 2. dex2jar下载后解压即可使用。    用途:将apk或者dex转化为可以用gui查看的class文件    下载地址:http://code.

kingepoch的专栏 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Andriod APK 文件结构详解

APK文件结构        APK文件实际是一个zip压缩包,可以通过解压缩工具解开。      下面是用解压缩工具解开的APK包的结构: |-- AndroidManifest.xml |-- META-INF | |-- CERT.RSA | |-- CERT.SF | `-- MANIFEST.MF |-- classes.dex |-- res | |-- dr

万能的终端和网络 2486

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Andriod 简介

Andriod系统的4层架构 应用程序层(Applications)  包含所有安装在手机上的应用程序(包括系统自带的程序) 应用程序框架层(Application Framework)  提供构建应用程序时要用到的各种API,比如视图(View)、Activity Manager。 核心类库(Libraries) 包含系统库和Android运行时库,系统库主要是C/C++库...

chenhongyong 1588

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 某手rsa分析未完成
下一篇: ios http数据请求小结
inquisiter
博客等级 码龄10年 374粉丝 228原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值