从android开发到运行

查看 38|回复 2
作者:wangxiaobai123   
从android开发到运行[第二天/时长:3h]
今天准备把昨天的内容实践一下,就先自己写了个超级简单的程序示例(第一次写安卓程序感觉好像Qt开发,尤其是目录结构,不同的是多了个AndroidManifest.xml文件)

使用身份证的类比,AndroidManifest.xml 文件的重要性和作用更容易理解:它不仅定义了应用程序的身份和特征,还决定了应用程序在 Android 系统中的运行方式和访问权限。管理好这个文件,就像管理好自己的身份证一样,能够确保应用程序在 Android 平台上的正常运行和合规使用。

当用户输入错误密码则弹出提示。

用户输入正确密码则跳转到另一个界面。

首先Java 编译器生成 .class 文件,可以看出是针对每个类都生成了1个.class文件,当存在嵌套类时生成多个.class。一般来说.class文件是Java程序跨平台运行的关键,它包含了编译后的字节码,JVM可以解释并执行这些字节码,从而实现Java程序的运行。

具体路径: D:\Code\app\build\intermediates\javac\debug\classes\com\droider\firstapp


android - 如何读懂晦涩的 Class 文件|进阶必备 - 个人文章 - SegmentFault 思否
以上是16进制表示,当然我们可以用jdk自带的命令来查看具体信息如:

详解Java的类文件结构(.class文件的结构) | 二哥的Java进阶之路 (javabetter.cn)
随后dx 工具将 .class 文件转换成 .dex 文件以便Dalvik VM执行:

一篇文章带你搞懂 DEX 文件的结构-CSDN博客
然后ART 加载 .dex 文件,JIT 和 AOT 编译生成机器码在 CPU 上执行
然后我还在想这个机器码是类似PC上由像x86汇编语言经汇编器而来的吗?查了半天资料都是由Dalvik虚拟机或ART将其转换为对应设备架构的机器码执行。插个眼,回头再看
查资料过程中看到了安卓Native层。不懂概念直接GPT

安卓的Native层指的是使用C、C++等本地编程语言编写的代码,这些代码直接运行在安卓操作系统的底层。与之相对的是Java或Kotlin等高级语言编写的代码,这些代码运行在安卓应用程序框架层。
具体来说,安卓的软件堆栈可以分为以下几个层次:
[ol]

  • 应用层(Application Layer): 这一层包括用户直接与之交互的应用程序,通常使用Java或Kotlin编写。这些应用程序通过Android框架提供的API与系统和硬件进行交互。

  • 框架层(Framework Layer): 安卓框架提供了许多高级API和服务,供应用程序使用。这些框架层的代码大部分是使用Java编写的,例如活动管理、视图系统、通知管理等。

  • Native层(Native Layer): Native层是直接运行在操作系统上的底层代码,通常使用C、C++等编程语言编写。这些代码能够直接访问设备的硬件资源和系统服务,提供了更高效和更接近硬件的访问能力。
    [/ol]
    安卓Native层的主要组成部分包括:

  • 系统运行库(System Libraries): 包括C库、图形库(如OpenGL ES)、多媒体库等,提供了底层的系统功能和服务。

  • 硬件抽象层(Hardware Abstraction Layer, HAL): 提供了与设备硬件交互的接口,允许上层软件通过标准API访问设备硬件,例如摄像头、传感器等。

  • 驱动程序(Drivers): 这些是硬件设备的实际驱动程序,用于控制设备和处理设备级别的输入输出操作。

    安卓Native层的优势在于能够提供更高的性能、更直接的硬件访问能力,适合需要处理复杂计算或与底层硬件交互的应用程序功能。

    个人感觉也就是个上层到底层交互的中间件。这个库中的的文件大多是.so文件形式。
    什么是.so文件?.so文件与ELF关系?不多解释,直接类比PC:
    [table]
    [tr]
    [td]特性[/td]
    [td]Windows(PE格式)[/td]
    [td]Linux/Unix(ELF格式)[/td]
    [/tr]
    [tr]
    [td]文件格式

    文件, 应用程序

  • zhurainyk   

    图床试试这个,另外学习思路可以参考一下我的系列课程
    ShareX 全功能截图 v16.1.0 便携版 | 附图床配置,发帖再也不怕找不到图床了
    https://www.52pojie.cn/thread-1925145-1-1.html
    (出处: 吾爱破解论坛)
    zhurainyk   

    好东西,感谢分享!!!
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部