Android的应用程序框架入门

《Android 智能穿戴设备开发-从入门精通》读书笔记 《Android 智能穿戴设备开发-从入门精通》读书笔记               张明星 孙娇 编著   基本知识梳理           Android的核心技术框架(自下而上) 操作系统层 (OS)各种库(Libraries)和Android运行环境(RunTime)  应用程序框架(Application Framework)   应用程序(Application) 阅读详情

以HelloActivity程序为例,简单介绍Android应用程序的框架。希望读者可以根据HelloActivity,自己写出一个Andorid的应用程序。


  HelloActivity工程的源代码在Android目录的development/samples/HelloActivity/中,代码的结构如下所示:
development/samples/HelloActivity/
|-- Android.mk
|-- AndroidManifest.xml
|-- res
|   |-- layout
|   |   `-- hello_activity.xml
|   `-- values
|       `-- strings.xml
|-- src
    `-- com
        `-- example
            `-- android
                `-- helloactivity
                    `-- HelloActivity.java

  其中tests是一个独立的项目,可以暂时不考虑。其他部分看作一个Android的一应用程序的工程。这个工程主要的组成部分如下所示:


Android.mk
是整个工程的“Makefile”,其内容如下所示:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := samples
# Only compile source java files in this apk.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := HelloActivity
LOCAL_SDK_VERSION := current
include $(BUILD_PACKAGE)
# Use the following include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

其中LOCAL_PACKAGE_NAME表示了这个包的名字。这个文件是最终生成的包(*.apk)的名称,注意,包的名称和应用程序目录的名称无关,而与这里的HelloActivity的名称有关。


AndroidManifest.xml

工程的描述文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="
http://schemas.android.com/apk/res/android"
    package="com.example.android.helloactivity">
    <application android:label="Hello, Activity!">
        <activity android:name="HelloActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

  在工程描述文件中,package的名称需要和JAVA文件中包的名称相同,activity 的名称必须和JAVA文件中JAVA类的名称相同,JAVA文件的文件名也必须和其中类的名称相同。
  而那个android:label的名字既是应用程序在菜单中的名字,也是应用程序启动后的标题。


HelloActivity.java
这是JAVA类文件,这个文件的路径表示在Andorid的JAVA包的结构中的位置,这个包的使用方式为com.example.android.helloactivity。

package com.example.android.helloactivity;
import android.app.Activity;                
import android.os.Bundle;                  
public class HelloActivity extends Activity {
    public HelloActivity() {
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.hello_activity);
    }
}


AndroidManifest.xml和*.JAVA的名称需要匹配(这里的HelloActivity.java和HelloActivity),否则是找不到JAVA类的。

  程序编译完成后,将生成apk包,将其放置在system/app中即可。除了使用界面启动之外,还可以在QEMU仿真器的启动界面中,使用如下的方式启动:
am start -n com.example.android.helloactivity/com.example.android.helloactivity.HelloActivity

事实上,启动的方法和工程描述文件中包的名称和类的名称有关。

几个注意点:
  1、应用程序文件夹的名称并无实际的影响
  2、Android.mk的LOCAL_PACKAGE_NAME,决定APK包的名称;
  3、AndroidManifest.xml中需要包含包的名称和activity类的名称,并需要和JAVA文件中对应;
  4、AndroidManifest.xml中application android:label的名称既是应用程序在界面中的名称,也是启动后的标题

Cortex-M内核DWT周期计数器:从原理到STM32实战时间测量与性能分析 在嵌入式开发中,代码执行耗时测量是性能优化的基础。除了依赖外设定时器或SysTick,ARM Cortex-M3/M4/M7内核自带的DWT(Data Watchpoint and Tracker)调试组件提供了一种极低侵入性的硬件计时方案。其内部的32位周期计数器CYCCNT跟随内核时钟递增,无需占用额外引脚或定时器资源,即可实现纳秒级分辨率的函数耗时测量、中断响应分析及延时实现。从DWT寄存器配置、周期差值计算到基于SystemCoreClock的微秒换算,开发者可以快速搭建一套轻量级性能分析工具。本文 阅读详情

相关推荐

从零开始:YOLOv8车牌检测模型训练全流程实战

本文详细介绍了从零开始训练YOLOv8车牌检测模型的全流程实战指南。内容涵盖环境搭建、数据集收集与标注、模型配置与训练、评估测试及高级优化技巧。通过使用预训练模型和迁移学习,开发者可以高效构建精准的车牌检测系统,并掌握模型导出与部署的关键步骤。

weixin_29061041的博客 335

Android的应用程序框架

   【IT168 技术文档】以HelloActivity程序为例,简单介绍Android应用程序的框架。希望读者可以根据HelloActivity,自己写出一个Andorid的应用程序。  HelloActivity工程的源代码在Android目录的development/samples/HelloActivity/中,代码的结构如下所示:development/samples/HelloA

aini3884的专栏 399

工业视觉中HDR算法的动态范围优化与Debevec/Mertens方法实践

本文深入探讨了工业视觉中HDR(高动态范围)成像技术,重点解析了Debevec和Mertens两种核心算法。针对工业场景中因动态范围不足导致的过曝与欠曝问题,文章详细对比了两种方法的原理、实现步骤、参数调优及适用场景,为工程师在静态检测与高速产线等不同需求下,选择并实践HDR算法提供了清晰的指导。

weixin_29099217的博客 195

Android应用程序框架

应用程序框架可以说是一个应用程序的核心,是所有参与开发的程序员共同使用和遵守的约定,大家在其约定上进行必要的扩展,但程序始终保持主体结构的一致性。其作用是让程序保持清晰和一目了然,在满足不同需求的同时又不互相影响。 开发应用时都是通过框架来与Android底层进行交互,接触最多的就是应用框架层。        Android分为应用层、应用框架层、系统运行库层和Linux内核层。我们在开发应用时都...

zhaohuarong的专栏 1381

程序员的自我修养

一个好的程序员的自我修养需要从不同角度出发,工作能力是一个方面,对自身的定位和了解也是一个方面,程序员的工作能力修养包括需求理解、功能设计、沟通确认、代码规范、成果验证、代码重构优化等,通过自我剖析来对自身进行定位并了解自身的优缺点,如去除劣根性、端正意识形态与态度、提升自己的核心竞争力等。 自我剖析 一个成功的人,必须要先了解自己,只有了解自己是什么样的人,了解自身有哪些优缺点,了解自己更合适做什么工作,知道自己做什么才能发挥出自身的优势,这样才能使自己在工作中发光发热,在职业生涯的道路上走的更远。

数通畅联 1677

深度探索:非线性随机森林(Nonlinear Random Forest,NL-RF)原理及应用

非线性随机森林(NL-RF)旨在通过结合集成方法与高级技术来捕捉和建模数据中的非线性关系,从而改善传统随机森林在处理复杂非线性数据结构时的表现。

qq_51320133的博客 2067

Android系统框架总结(好文)

原址 通用概念 Android框架图 Android应用程序框架 UI基本开发 Fragment 安全策略 在Android中,安全涵盖了应用程序的部署和执行.对于部署来 说,Android应用程序必须被赋予一个数字证书才允许被安装到某个设备中.对 于运行来说,每个应用程序都在一个独立的应用程序中执行,每个进程都有一 个唯一的永久的用户ID(在安装的时候分配的). 注册应用程序...

Android系统攻城狮 1万+

手把手教你学 NPU 驱动开发--第一部分:基础准备 开发环境搭建:Linux 内核编译与 NPU 仿真平台配置

摘要:本文详细介绍了搭建Linux内核编译与NPU仿真平台的完整流程。主要内容包括:1) 准备ARM64交叉编译工具链;2) 编译支持KGDB调试的Linux内核;3) 构建最小根文件系统;4) 使用QEMU模拟自定义NPU设备;5) 配置KGDB调试环境。文章重点讲解了如何通过修改设备树添加虚拟NPU设备,并提供了开源NPUIP Gemmini作为实验对象。最后展示了简单的"Hello NPU"驱动验证方法,为后续NPU驱动开发奠定了基础。文中还附有常用命令速查表,方便开发者快速搭建调

MHD0815的博客 384

android的应用程序框架,1.4.2 Android应用程序框架

1.4.2 Android应用程序框架Android是同一个核心应用程序包一起发布的,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等,这些应用程序都是用Java编写的。开发者也完全可以访问核心应用程序所使用的API框架,该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过得遵循...

weixin_35910783的博客 389

2025年最新自动化/控制保研夏令营&预推免面试真题分享(东南大学苏州校区/华东理工/南航/天大)

笔者来2021级本科自动化专业,以下部分将介绍我在夏令营以及预推免期间发生经历和问题。

Control Everything 2584

基于 ESP32 的分布式光伏微电网智能监控系统设计与实现

设备 / 模块连接 ESP32 引脚备注I2C 总线(SDA)GPIO21所有 I2C 设备共用I2C 总线(SCL)GPIO22所有 I2C 设备共用DS18B20(单总线)GPIO18单总线通信,需外接 4.7K 上拉电阻有源蜂鸣器GPIO19低电平触发,串联 100Ω 限流电阻ESP32 供电5V/GND由 LM2596 输出 5V 供电,或直接 USB 供电(调试阶段)INA219(光伏)光伏阵列正负极接 INA219 的 VIN+/VIN-

weixin_42300449的博客 304

Android入门学习:Android 系统框架及应用程序执行过程

Android基础知识学习   新手上路,还请多多帮助。由于初学,博客内容难免有不正确的地方,还请各位多多指教,相互学习! 主要内容:   1、Android层次架构及主要功能   2、Android编程模型,程序执行流程   由于国内Android系统很流行,大多数使用的智能机都是Android系统,对于学习Android系统编程的新手来说,了解Android系统框架层次很有必要。An...

weixin_30235225的博客 145

SAP-ABAP: BP主数据完全指南:从基础到高阶应用

SAP-ABAP: BP主数据完全指南:从基础到高阶应用

baidu_35680696的博客 1647

Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍...

系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(Libraries和android runtime)和Linux内核层。 那么我来讲讲应用层有什么? 就是一些应用软件,如首页,联系人,电话,浏览器等等;应用框架如何理解? 应用框架层是用Java写...

weixin_34336292的博客 129

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android初学者介绍

对于物联网专业的学生来说,Android这门课的作用非常大,学好Android这门课,就算未来没有对关于物联网的工作,也可以凭借着这门技术找到一份不错的工作,所以在这对Android进行简单介绍。

2201_75440944的博客 1274

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

androidstudio开发,android应用程序开发教程示例程序

在此为大家准备了四节优质的Android高级进阶视频:架构师项目实战——全球首批Android开发者对Android架构的见解。

2401_84407923的博客 1341

第一章、Android基础入门 - Android移动开发基础笔记

本篇文章主要介绍了 Android 的起源以及体系结构,然后是 Android 开发环境的搭建

熊先森的博客 6474

Android入门/架构(一)

尽管博客上已经有很多写Android架构的文章,作为我迈入Android的第一步,我会记录每一点体会,分享其中点点滴滴,希望牛牛们多多赐教 ,我也一定要坚持下来! 1. Android 初识 1.1 Android系统 是基于Linux内核开发的开源的应用于移动平台一款操作系统。 它包含以下一些特色的功能:针对移动设备优化的Dalvik虚拟机, 基于开源浏览器引擎WebKit的集

幺鹿 809

Android开发入门书籍推荐

http://liangruijun.blog.51cto.com/3061169/623548/ Android开发入门书籍推荐 Android编程入门教程andbook andbook是我看到的最简单但最好的Android程序开发入门书籍,内容仅有60多页,图文并茂,如果你从来没有接触过Android开发,也完全可以通过阅读此书了解程序开发过程,甚至对APK程

一名普通码农的菜地 1万+

安卓期末考试知识总结

Android系统采用分层架构,由高到低分为4层,主要为:应用程序层、应用程序框架层、核心类库、Linux内核在Android项目程序开发完成后中,必须__打包成_正式的Android安装文件,才能发布到互联网上让用户下载使用。Android 工程中src目录下存放_java__文件Android应用的界面是由View 对象和 ViewGroup 对象构建而成的。ViewGroup继承自View,ViewGroup作为容器盛装界面中的其他控件。

缘友一世的博客 2182

android framework框架分析

framework 目录为框架层 代码,framework 为android四个层次中的第二层。 frameworks/ ├── base │   ├── Android.mk │   ├── api │   │   ├── 1.xml │   │   ├── 2.xml │   │   ├── 3.xml │   │   ├── 4.xml │   │   ├──

lynchyo——得失只在刹那间 2628

《Delphi XE6 android 编程入门教程》推荐

       近5、6年已经没有看见关于delphi的新技术的书出来了(看来在国内delphi的使用量确实很低了), 高勇同学最近出了一本《Delphi XE6 android 编程入门教程》,上周刚拿到,这一周大概看了一遍。 严格意义上,这本书不是按正常的出版的格式来的,大部分应该是类似博客的汇总。delphi 开发android 还是一个新事物,也就是去年才开始,相关资料也是少之甚少,这...

weixin_34205076的博客 605

Android应用开发入门

《Android应用开发入门》基本信息原书名:Android Apps for Absolute Beginners作者: (美)Wallace Jackson [作译者介绍]译者: 周自恒丛书名: 图灵程序设计丛书出版社:人民...

csdn1232的博客 233

安卓Android入门

Android基于Linux内核,这使得它具有强大的硬件兼容性和稳定性。

m0_74154295的博客 2281

安卓进阶之android系统架构

安卓进阶知识之android系统架构学习的笔记,结合了《进阶之光》、一些博客、官方文档和个人的理解

Suzy_MM的博客 3351

Android Studio目录结构介绍, 安卓开发入门

安卓学习:Android Studio目录结构 刚刚开始学Android开发, 来分享一下Android Studio 项目的目录结构 这是刚刚创建完项目的样子 任何一个新建的项目都会默认使用Android模式的项目结构, 但这并不是项目最真实的目录结构, 而是被Android Studio转换过来的, 这种项目结构简洁明了,适合进行快速开发,但是对于新手来说可能并不易于理解。 点击图片中Android区域可以切换项目结构模式. 这里我们项目结构切换为Project, 这就是最真实的目录结构 这里开始

天行健 君子以自强不息,地势坤 君子以厚德载物。 5577
上一篇: android4.0.3 wifi 移植记录
下一篇: Eclipse开发Android应用程序入门
简单并快乐着
博客等级 码龄15年 474粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值