Android开发基础

2023-11-10

#基本知识
+ Android 是一个面向移动设备的软件堆层,包含了一个操作系统,中间件和关键的应用程序;
+ 每个 Android 应用程序都通过 Dalvik 虚拟机在自己的进程中运行;
+ Android 应用程序是用 java 语言写的,通过 aapt 工具把编译好的 java 代码和应用程序所需要的所有数据、资源文件打包成 Android 包,即后缀为.apk 的压缩文件,这个文件是发布应用程序和在移动设备上安装应用程序的媒介,是用户下载到他们设备上的文件。一个.apk
文件中的所有代码同属于一个应用程序;
+ 2007.11Android发布,2008.9  Android SDK 1.0发布,10月Android开源,
+ Applications、Application Framework--Java,Libraries、Android Runtime-----JNI + C/汇编          Linux Kernel --------C/汇编
+ Android应用程序构成:Activity、Service、Broadcast Receiver、Content Provider、Intent
+ Android SDK、Eclipse+ADT
+ 支持Android的ARM硬件平台:ARMv7,支持NEON SIMD,
+ Android,作为一个系统,是一个运行在Linux2.6 核心上的JAVA基础的操作系统




#开发环境搭建
+ JAVA
+ Eclipse
+ Android SDK:离线安装
+ ADT:离线安装
如果不想被软件兼容的事麻烦,使用adt-bundle-windows-x86开发环境即可,它集成了eclipse、sdk和adt,解压即可使用,可以使用解压目录下的SDK Manager.exe更新SDK,由于默认选的google源更新不成功,在Tools-Options中填入东软源即可。
+ 由于网速原因,Android SDK Manager每次加载出来的内容可能会不一样,我第一次加载(使用东软的源)就有很多东西没有加载出来,包括镜像,所以导致模拟运行时无法创建AVD,后来重新打开Android SDK Manager加载的时候又加载出来了,并且多了很多之前没有加载出来的东西。
+ Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。




#Android开发
+ 在Eclipse中创建一个Android工程之后,在根目录下会有这么几个文件:AndroidManifest.xml 文件是一个指定全局设定的地方,包括如程序许可
,活动,和意向过滤器等的设定;你会在项目引用里看到一个库,那就是 android.jar(Eclipse可以允许你增加用户定义的外部库);res 目录
是你项目资源放置并且编译你的应用程序的地方,res目录包含3个子目录:drawable, layout, 和 values,drawable 和 layout 分别放置并显示图形
和布局。而values 目录放置遍及程序全局的字符串;assets 目录用来放置原料文件的。在这个目录中可以包含为流媒体和动画准备的
音频文件;src 目录包含项目里所有的源文件;当项目一创立,就会包含两个文件 R.java和<活动>.Java,R.java 是一个由 Android plugin 自动产生并添加到你的应用程序中的文件。这个文件包含到 drawable,layout 和 values 目录的指针;
+ 创建项目之后,Run As Android Application时出现AVD error:No compatible targets were found,可以在弹出的窗口中创建
一个Android虚拟设备(AVD)或者直接在Windows--Android Virtual Device Manager中创建AVD或者直接在工具栏一行点击手机图标也可以创建AVD,Device一栏根据分辨率来选,Target就是Android版本(在Manifest.xml中有最低的版本号定义,不低于此即可)。
+ AVD创建好之后可以Start启动模拟器,如果出现‘an android virtual device that failed to load’,可以尝试着将分辨率和RAM都调小一点,
另外在Console中会提示错误信息的,我的提示没有安装x86加速器,这个确实在SDK Manager中安装失败了,所以我重新将镜像改为了ARM镜像,
换为ARM镜像之后提示"Running an x86 based Android Virtual Device (AVD) is 10x faster.We strongly recommend creating a new AVD."这个说的是使用一个x86的模拟器比使用arm内核的要快10倍,所以这只是个提示,让你换成内核为x86的模拟器呢!不换的话你就只能等了,操作每一步都可能要等个好三四秒。但是x86加速器在Android SDK Manager中安装失败并提示"Not compatible with Windows",需要在BIOS中开启硬件虚拟VT-x的功能。自带的AVD在ARM模拟器中运行太慢和x86中需开启硬件虚拟化都走不通了,可以考虑第三方模拟器,海马玩模拟器(Droid4X)是迄今为止在性能,兼容性和操控体验方面最好的安卓模拟器。不过海马玩模拟器老是连不上Eclipse,因此思来想去最好还是用自带AVD,对于简单的学习可以容忍反应慢一点,比较大的程序就直接真机测试就OK了。
+ Activity是android应用程序的用户接口。一个Activity中可以放置很多控件。如:TextView、Button等Activity也可以理解为控件的容器;

+ Android各个版本开发的差异比较大,建议对使用的版本有所了解之后选择一个合适的版本进行开发,Android 4.0以前、Android4.4、Android5.0、Android6.0、Android7.0 


#Android应用开发入门
+对于Android应用程序的开发,第3层次以下的内容是不可见的,仅考虑系统API即可;
+aapt(Android Asset Packaging Tool):用于建立zip兼容的包(zip、jar、apk),也可用于将资源编译到二进制的assets;
+ adb(Android Debug Bridge,Android调试桥):使用adb工具可以在模拟器或设备上安装应用程序的.apk文件,并从命令行
访问模拟器或设备。也可以用它把Android模拟器或设备上的应用程序代码和一个标准的调试器连接在一起;
+ android工具:android工具是一个脚本,用于创建和管理Android Virtual Devices (AVDs);
+ DDMS(Dalvik Debug Monitor Service,Dalvik调试监视器服务):这个工具集成了Dalvik,能够在模拟器
或者设备上管理进程并协助调试。可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观
察堆(heap)和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。
+ Android应用程序的基础是Android提供的各个Java类,这些类组成了Android系统级的API;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android开发基础 的相关文章

随机推荐

  • GoLang学习资源清单

    地鼠文档go语言文档网站通过收集整理go语言相关的学习文档 为大家提供一个学习平台https www topgoer cn 前景 Go语言中文文档https www topgoer com 文档 Gin Web FrameworkGin W
  • pyinstaller 打包.py文件生成exe(含转换.py文件为.pyd,保护源码,适合发布程序or论文复现用)

    文章目录 操作详情 1 安装Cython 2 修改调用外部数据or文件的 py文件 4 在命令行运行python setup py build ext inplace 5 创建main py文件 import 所有用到的包 写一个main
  • 数据库分表策略

    1 垂直划分 将数据表中的某些字段提出 组成新的数据表 将群组id 专辑id 音乐id提出 组成gzm数据表 而将 群组 专辑 音乐的详细信息单独放在其他数据表中 在求取索引 关系时 操作数据库效率更高 2 水平划分 2 1物理上的水平切分
  • 2018蓝桥杯B组国赛

    1 标题 三角形面积 已知三角形三个顶点在直角坐标系下的坐标分别为 2 3 2 5 6 4 3 1 5 1 7 2 求该三角形的面积 注意 要提交的是一个小数形式表示的浮点数 要求精确到小数后3位 如不足3位 需要补零 思路 利用两点求距离
  • vue项目(vue-cli)配置环境变量和打包时区分开发、测试、生产环境

    1 打包时区分不同环境 在自定义配置Vue cli 的过程中 想分别通过 env development env test env production 来代表开发 测试 生产环境 NODE ENV development NODE ENV
  • 坐标转换WGS-84 转 GCJ-02 和 GCJ-02转WGS-84

    WGS 84 to GCJ 02 static wgs gcj lng lat if this out of china lng lat return lng lat else var a 6378245 0 a 卫星椭球坐标投影到平面地图
  • ros系统设置动态服务器,让ROS变成你量身定做的WEB服务器

    如何用ROS来做一台简单的WEB服务器 我也提供了一些思路 但都太过于复杂 难以实用 介绍一种比较简单的修改方法 把HTTP目录链接到FTP目录下 不就可以很方便的修改了吗 试验 马上行动测试一下 1 关闭ROS 我的是学习用的 可一说关就
  • 15、OpenCV形态学操作——Hit-or-Miss

    OpenCV形态学操作 Hit or Miss 一 学习目标 二 Hit or Miss 一 学习目标 理解什么是Hit or Miss 学会在OpenCV中使用Hit or Miss 二 Hit or Miss 形态学算子根据图像的形状来
  • ceph集群部署

    一 ceph特点高性能 1 摒弃了传统的集中式存储元数据寻址的方案 采用CRUSH算法 数据分布均衡 并行度高 2 考虑了容灾域的隔离 能够实现各类负载的副本放置规则 例如跨机房 机架 感知等 3 能够支持上千个存储节点的规模 支持TB到P
  • vue上线项目去除所有console.log打印日志

    第一步 安装 babel plugin transform remove console 开发依赖 方法一 npm i babel plugin transform remove console save dev 方法二 第二步 在babe
  • 【数据库MySql】数据库基础——库和表的基础操作

    数据库学习大纲 1 SQL编程语言的语法 核心 2 数据库内部原理 面试题 3 使用java代码操纵数据库 JDBC编程 SQL是一个专门用来操作数据库数据的编程语言 MySQL服务器里面里有很多个数据库 这些是逻辑上的数据集合 一个数据库
  • CSAPP-BinaryBomb实验

    目录 一 实验目的与要求 二 实验原理与内容 三 实验过程与结果 1 程序编码 汇编 2 拆解过程 Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 Phase 6 Secret phase 一 实验目的与要求
  • IOException parsing XML document from class path resource [applicationContext.xml]

    在spring框架搭建的时候 有的时候会出现这样错误 在网上看到说把路径具体指向 例如
  • ESP8266WIFI模块连接原子云及手机APP

    一 项目需求 使用ESP8266WIFI模块连接到正点原子的原子云 下载原子云手机APP到安卓手机 使用APP与8266WIFI模块通信互发数据 二 软硬件准备 硬件 1 正点原子的esp8266模块 2 usb to ttl 模块 软件
  • 详解Namespace与资源限制ResourceQuota,LimitRange

    前面我们对K8s的基本组件与概念有了个大致的印象 并且基于K8s实现了一个初步的CI CD流程 但对里面涉及的各个对象 如Namespace Pod Deployment Service Ingress PVC等 及各对象的管理可能还缺乏深
  • 云计算、大数据、人工智能的区别

    一 什么是人工智能 通俗来说 利用计算机及其相关设备来模拟和实现人类或者是智能生物的思想和行为 从而达到更彻底地代替人类进行生产活动 就是人工智能 人工智能有很多学派和技术路线 多以数学理论为工具 比如统计学 线性代数和概率论等 它聚焦于解
  • ENVI5.1 进行监督分类流程化工具时(classification workflow)界面显示不全的问题解决办法

    在使用ENVI5 1进行监督分类流程化工具时 classification workflow 会存在界面显示不全的如下问题 需要下载ENVI5 1的一个界面补丁 补丁下载链接 https pan baidu com s 1DHqd6wHDI
  • 数据库、sql、语句表、存储引擎、集成开发工具讲解、MySQL中的数据类型

    一 2 为什么要学习数据库 2 1上述技术适合小量数据 对于大量数据操作 性能低下 2 2上诉技术存储数据的技术有java语言提供 不够专业 3 数据库概述 3 1核心 数据管理 3 2方式CRUD 1 存 增删改 2 取 查 查所有 指定
  • 时间序列的分析及滚动预测代码

    注意 参考地址http www cnblogs com foley p 5582358 html 部分代码可能因为版本问题出现bug 什么是时间序列 时间序列简单的说就是各时间点上形成的数值序列 时间序列分析就是通过观察历史数据预测未来的值
  • Android开发基础

    基本知识 Android 是一个面向移动设备的软件堆层 包含了一个操作系统 中间件和关键的应用程序 每个 Android 应用程序都通过 Dalvik 虚拟机在自己的进程中运行 Android 应用程序是用 java 语言写的 通过 aap