码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【安卓开发】安卓工程介绍及启动过程


    目录

    • 一、安卓工程介绍
      • 1. src文件
      • 2. gen文件
      • 3. Android:4.4文件
      • 4. assets文件
      • 5. bin文件
      • 6. lib文件
      • 7. res文件
      • 8. res文件
    • 二、安卓工程启动过程
      • 1. Lancher进程
      • 2. mainfest
      • 3. 调用oncreat
      • 4. java关联xml布局页面

    一、安卓工程介绍

    1. src文件

    在这里插入图片描述

    文件作用:

    存放java代码的,有包,有文件。

    2. gen文件

    在这里插入图片描述

    文件作用:

    存放自动生成的文件,关心是R.java, 程序页面,按键,文本等空间的ID。


    每个页面、按键和文本等组件都对应一条id,下面为 t e s t H e l l o testHello testHello 添加一套id:

    在这里插入图片描述

    在对应的id文件下自动添加一条id:

    在这里插入图片描述

    3. Android:4.4文件

    在这里插入图片描述

    文件作用:

    Android:4.4: 存放安卓开发的一些库,供开发者调用

    4. assets文件

    在这里插入图片描述

    文件作用:

    存放一些存放一些资源,配置文件,图片。

    5. bin文件

    在这里插入图片描述

    文件作用:

    存放编译后会生成的一些文件,包括我们关心的apk(安装包。)

    6. lib文件

    在这里插入图片描述

    文件作用:

    存放一些依赖库,与Android:4.4中存放的东西类似。

    7. res文件

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    文件作用:

    drawable: 存放app程序要用到的一些图片。

    layout: 存放布局文件的文件夹,一般一个activity(安卓页面)对应一个布局。

    values: 存放一些参数,或者自定义控件的文件。

    8. res文件

    在这里插入图片描述

    在这里插入图片描述

    文件作用:

    APP的配置权限: 网络访问权限,名片夹访问权限,相机访问权限等。

    目标机器SDK版本、 APP的名字、APP的图标、配置第一个被加载,启动页面。



    二、安卓工程启动过程

    Laucher进程 -> mainifirst -> lauch标签的activity被加载 -> oncreat被调用 -> java关联xml布局页面 -> 显示 -> 等待用户触摸等操作

    1. Lancher进程

    该进程不断检测用户触摸落在哪个APP上面,落在空白处不做处理,当用户触摸某个APP或者其他元素的时候,通过Binder驱动去通知底层的一些服务框架,比如system_server会去启动APP的进程,然后APP会创建 ApplicationThread 和 ActivityThread 进程去启动Activity.onCreate。

    2. mainfest

    在这里插入图片描述

    首先加载代码 mainfest ,判断用户SDK版本,加载访问权限。

    在这里插入图片描述

    然后标签 intent-filter 加载第一个要加载的页面,该标签被放在哪个 activity 里面,哪个页面就会被加载。

    3. 调用oncreat

    在这里插入图片描述

    当 MainActivity 代码被调用以后,会创建子类 MainActivity 继承父类 Activity,在该子类中自动调用 onCreate() 方法创建页面,该操作类似于 Main() 函数,我们要做的一系列开发大部分会在这段代码中,但在这里是调用父类的 onCreate() 。

    4. java关联xml布局页面

    然后通过 setContentView() 将 .java 代码与 R.layout.activity_main 布局关联起来。

    在这里插入图片描述

    在 activity_main.xml 这里可以修改页面被加载的内容。

    在这里插入图片描述

  • 相关阅读:
    Python数据库编程全指南SQLite和MySQL实践
    I/O多路转接-epoll
    Vite Vue3+Element Plus框架布局
    【推搜】embedding评估 | faiss的topK向量检索
    UE4动作游戏实例RPG Action解析一:角色移动,旋转,动画创建,创建武器,及武器配置
    【IDEA】idea2021.2.1版本无限试用30天重置脚本 实战教程
    Hive ,Hsql行转列、列转行实现
    docker快速搭建kafka集群
    高云FPGA系列教程(6):ARM定时器使用
    3 万亿美元,苹果问鼎全球市值最高公司宝座
  • 原文地址:https://blog.csdn.net/qq_62361050/article/details/126075184
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号