1.首先从视觉上感受下安卓系统结构

可以发现安卓系统的底层是linux内核 依次往上分别是系统运行库层 应用框架层 应用层

蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机(这里是优化后的java虚拟机更适合移动设备),绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+驱动)。在应用框架层之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。

  1. linux内核:一个微型的操作系统包含内存管理,进程管理, 网络协议栈和驱动模型。
  2. 系统运行库:
    a)程序库
    Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框 架为开发者提供服务。
    以下是一些核心库:
    主要包括基本的C库、以及多媒体库以支持各种多媒体格式、位图和矢量字体、2D和3D图形引擎、浏览器、数据库支持。
    b)优化后的JAVA虚拟机(DVM) 每一个 Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik虚拟机实例。
  3. 应用框架层:指的就是开发时所需要的API框架,开发人员是在遵守该框架的原则上,调用他们的,开发自己所需要的程序。
  4. 应用层:所有的应用程序都是使用JAVA语言编写的,每一个应用程序由一个或者多个活动组成

2.安卓的四大基本组件

  1. Activity:整个应用程序的门户,负责和用户进行交互。一个Activity相当于一个网站的一个网页
  2. Service服务:一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。(劳模)
  3. Content Provider内容提供者:android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式,
  4. BroadcastReceiver广播接收器:你的应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

3.安卓开发环境各个目录的含义

看下eclipse一个Helloworld工程的项目目录结构


4.常用ADB命令

adb是什么?:adb的全称为Android Debug
Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket
TCP
5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。

adb有什么用?:借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作

  1. adb devices:显示当前链接的所有安卓设备(包括手机 安卓模拟器)

  2. adb shell :进入设备或模拟器的shell环境中,在这个Linux Shell中,可以执行各种Linux的命令

  3. adb install 安装apk到手机或者安卓模拟器

  4. adb uninstall <软件名> adb uninstall -k <软件名>
    -k 参数,为卸载软件但是保留配置和缓存文件.

  5. adb push <本地路径> <远程路径>
    用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

  6. adb pull <远程路径> <本地路径>
    用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑

  7. adb logcat > d:\bug.txt :将安卓运行日志文件保存到电脑D盘下的bug.txt中

  8. adb kill-server:结束adb 重新启动adb服务

安卓开发之路-浅识Android相关推荐

  1. 从0开始安卓开发之路_Android Studio安装包

    Android Studio原本是基于JAVA IDEA下的一个安卓开发插件,后被谷歌从插件中移了出来,成为独立安卓开发IDE,但语言是基于JAVA! 但是如果想要下载此IDE就要到谷歌官方的应用商店 ...

  2. 安卓开发快速上手!优秀Android程序员必知必会的网络基础,含爱奇艺,小米,腾讯,阿里

    写这篇文章的目的是想说说这段时间一直被不断提起搞得人心惶惶的话题,裁员.为什么突然聊这个,本来一直是想避开这个话题的,一是网上已经有了铺天盖地的消息不想要再造成大家的恐慌,二是我身边几乎没有发生这样的 ...

  3. 安卓开发实战!斗鱼直播Android开发二面被刷,成功入职阿里

    我的移动开发春季历程 没有稳定的工作,只有稳定的能力. 春天,又到了万物复苏的季节,在程序猿这个行当里,作为 Android 开发出生的我,在经历了5年的脱发生涯后,现在更多的是称呼自己为移动开发攻城 ...

  4. 安卓开发基础预备篇(Android Studio的使用)

    一.Android Studio的安装 网上已经有许多教程,官方中文做的也很好,所以还是推荐阅读官方文档,按照官方文档来安装,下面给出安装的地址: 安装 Android Studio  |  Andr ...

  5. 安卓开发基础面试题,Android面试必备的集合源码详解,附小技巧

    去年无疑是 Flutter 技术如火如荼发展的一年. 每一个移动开发者都在为 Flutter 带来的"快速开发.富有表现力和灵活的 UI.原生性能"的特色和理念而痴狂,从超级 Ap ...

  6. python安卓开发实例_python服务器与android客户端socket通信实例

    本文实例讲述了python服务器与android客户端socket通信的方法.分享给大家供大家参考.具体实现方法如下: 首先,服务器端使用python完成,下面为python代码: #server.p ...

  7. 安卓开发新手入门教程!Android学习路线指南,复习指南

    互联网现状 如今的互联网,延续了2018年的态势.虽然前些年,每到年底的时候大环境都不好,然而来年照样春暖花开.但是现在的互联网环境是真的不好了. 首先各大公司争相优化员工,小公司我就不提了,咱就只说 ...

  8. 【音视频安卓开发 (六)】Android GLSurfaceView播放视频

    GLSurfaceView渲染RGB的数据,利用双缓冲空间机制.取出缓冲地址,将要渲染的数据copy到缓冲地址. 获取Surface Java部分: SurfaceView控件设置到界面中显示 Sur ...

  9. 【音视频安卓开发 (五)】Android中获取音视频原始数据的方法

    一般取得原始数据的方法使用的camera setPreviewCallback

最新文章

  1. .NET Core如何为项目提供高性能解决方案?
  2. getGeneratedKeys自动获取主键的方法
  3. 重装系统后软件安装 ----一直更新
  4. sql语句分别按日,按周,按月,按季统计金额
  5. java cssselector类_CSS 元素选择器
  6. mysql数据类型支持比较运_Mysql支持的数据类型(总结)
  7. 一个测试工程师面试官的真实分享!个人超赞同!
  8. 这次,甘肃的老百姓办理就医再也不用等了
  9. PHP date函数参数
  10. 分子力学无法模拟化学键的断裂的原因
  11. 在yii2应用中,使用imagine库生成分享图实战。
  12. 广州微创软件科技有限公司面试总结
  13. 远程协作从“特殊”到“常态”,你可能需要的会议平板测评
  14. python爬虫 — 爬取淘宝商品信息
  15. 解密dlink固件(四)
  16. 生化危机 android,生化危机4安卓版
  17. 携职教育:广东2022年企业人力资源管理师职业技能等级认定计划
  18. java swing人机对战五子棋(含背景音乐)
  19. 干货 | Jmeter 如何保证抢购、秒杀活动正常运行?
  20. MySql 之定时备份数据库

热门文章

  1. 【需求】手机无线投屏到电视需求整理,Miracast无线投屏功能应用及需求
  2. 【PC工具】N个直播录屏相关软件,手机投屏电脑,电脑显示手机摄像头图像,必须好用无广告!...
  3. 【任务脚本】0528京东618叠蛋糕任务脚本全自动脚本,京东任务全自动程序稳定运行,向大神致敬...
  4. 【笔记】windows10安装linux双系统教程(可能是现今最简单方法)
  5. 罗永浩直播带货观后感!首秀破纪录,罗永浩直播带货清单及感受
  6. 【GUI转exe】Matlab将GUI转化为exe文件
  7. Android seLinux 设置
  8. 2016年中国数据安全五大发展趋势
  9. 《CCNP TSHOOT(642-832)学习指南》一导读
  10. 如何添加和删除LaunchPad里面的程序图标