Android入门介绍

Android入门介绍

  1. 3G、4G
    • 第三代移动通信技术(3rd - Generation),速率一般在几百Kbps,较之前的2G2.5G在数据传输速度上有很大提升。
    • 第四代移动通信技术(4th - Generation),速度可达到100Mbps以上,几乎可以满足人们的所有传输数据的需求。 目前主流的3G技术标准有三种:
    • WCDMA:全球80%以上的3G网络都是采用此种制式。中国联通运营。186
    • CDMA2000:目前日韩及北美使用较多。中国电信运营。 189
    • TD-SCDMA:中国自主知识产权的3G通信技术。中国移动运营。 188 目前主流的4G技术为LTE,但还没有被广泛应用: GSMGPRSEDGEWCDMAHSDPAHSDPA+LTE
  2. Android是什么
    1. 手机设备的软件栈内存,包括
      • 一个完整的操作系统
      • 中间件
      • 关键的应用程序
    2. 底层是Linux内核
      • 安全管理
      • 内存管理
      • 进程管理
      • 电源管理
      • 硬件驱动
  3. Android体系结构
    • Applications:桌面、电话、浏览器等应用程序
    • Applications Framework:ActivityManager、 WindowManager、ContentProvider、ResourceManager等
    • Libraries: SQLite库、SurfaceManager、WebKit、OppenGL等。
      • Android运行时
        • Core Libraries
        • Dalvik Virtual Machine
    • Linux Kernel: 硬件驱动、电源管理等
  4. Dalvik VM和JVM的区别
    1. 编译后文件的格式:
      • JVM: .java->.class->.jar
      • Dalvik: .java->.class->.dex->.odex
    2. 基于的架构不同
      • JVM基于栈的架构(栈内存)
      • Dalvik基于寄存器的架构(CPU),执行效率比JVM要高
    3. Dalvik专门针对移动平台进行优化 JVM的jar包中会有很多class文件,每个class文件中都含有头信息、常量池、字段、方法等,而apk中只有一个dex,它里面包括了所有头信息、常量池、方法等。这样读取一个文件要比读取多个文件去找块。
  5. CPU处理器架构
    1. x86
      • intel
      • AMD
    2. ARM
      • 联发科
      • 高通
      • 海思
      • 三星
  6. Android项目目录结构
    1. src:源代码
    2. gen:系统自动生成的文件,R.java 中记录了项目中各种资源ID
    3. res:系统资源,所有文件都会在R文件生成资源ID
      • drawable:图片
      • layout:界面布局
      • values:数据
      • anim:定义动画的XML
      • raw:原生文件
    4. assets:资源路径,不会在R文件注册
    5. project.properties:供Eclipse使用,读取该项目使用Android版本号,早期版本名为default.properties
    6. AndroidManifest.xml:清单文件,在软件安装的时候被读取 Android中的四大组件(Activity、ContentProvider、BroadcastReceiver、Service)都需要在该文件中注册程序所需的权限也需要在此文件中声明,例如:电话、短信、互联网、访问SD卡
    7. bin:二进制文件,包括class、资源文件、dex、apk等
    8. proguard.cfg:用来混淆代码的配置文件,防止别人反编译
  7. APK 安装过程
    1. Eclipse将.java源文件编译成.class
    2. 使用dx工具将所有.class文件转换为.dex文件
    3. 再将.dex文件和所有资源打包并且签名成.apk文件
    4. 将.apk文件安装到虚拟机完成程序安装
    5. 启动程序 – 开启进程 – 开启主线程
    6. 创建Activity对象 – 执行OnCreate()方法
    7. 按照main.xml文件初始化界面 简单的来说软件的安装都是两个过程
    • 拷贝apk中的一些文件到系统的某个目录
      1. /data/app/目录下
      2. 创建一个文件夹 /data/data/com.test.helloworld/来保存数据
    • 在系统的packages.xml文件(类似于Windows的注册表)中里面配置应用权限等一些信息. /data/system/packages.xml
  8. Android安全学 Android安全学中的一个重要的设计点是在默认情况下应用程序没有权限执行对其它应用程序、操作系统或用户有害的操作。 这些操作包括读/写用户的隐私数据(例如联系人或e-mail),读/写其它应用程序的文件,执行网络访问,保持设备活动,等等。 所有牵扯到付费或者可能与用户隐私相关的操作都要申请权限。
  9. 测试分类 单元测试(Unit test) -> 功能测试( Function test) -> 集成测试(Intergation test)
  10. Android单元测试
    • AndroidManifest.xml中进行配置,导入android的junit环境
    • 编写测试类继承Android的测试父类,AndroidTestCase这个类( AndroidTestCase是为了去模拟一个手机的运行环境,这个类中有一个getContext方法能获取到当前测试类的应用上下文对象,所以这个方法必须要等到测试框架初始化完成后才可以去调用)
    • 测试的方法名要求以小写的test开头,如不以test开头只能单独点这个方法运行,整体全部运行时没有这个方法,所有的测试方法都要抛出异常,要把异常抛给测试框架不能自己去捕获

    注意:测试的代码也是只能在手机上跑,它是在手机上测试完之后又将信息发送到了eclipse中

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏猛牛哥的博客

CENTOS安装seafile专业版

1.2K2
来自专栏Felix的技术分享

Python断点调试

2033
来自专栏aoho求索

几种分布式调用链监控组件的实践与比较(一)实践

引言:最近在调研与选型分布式调用链监控组件。选了主要的三种APM组件进行了实践与比较。本来打算一篇文章写完的,篇幅太长,所以分了两篇。本文主要讲下链路trace...

5608
来自专栏V站

Dns-prefetch丨细节提升页面载入速度!

DNS Prefetch,即DNS预获取,是前端优化的一部分。一般来说,在前端优化中与 DNS 有关的有两点: 一个是减少DNS的请求次数,另一个就是进行DNS...

2104
来自专栏FreeBuf

硬盘数据恢复的神器有哪些?

在一切工作进行之前,请先判断硬盘是否有损坏,以及缺损类型,而往往硬盘出现问题主要集中下以下两个方面: 物理(驱动器故障或者组件故障); 逻辑(文件系统出错或是数...

1888
来自专栏君赏技术博客

如何快速制作支持源码和 Framework 切换的 Cocoapods 库

前往小专栏查看全部 https://xiaozhuanlan.com/topic/0278956314

1782
来自专栏Crossin的编程教室

[新手向视频]新版PyCharm创建项目为什么会有问题

文字版 之前我们发过一篇关于 PyCharm 的文章: 喏,你们要的 PyCharm 快速上手指南 文章帮好多新手解决了问题,在微博上还被知乎官方账号推荐了。 ...

3357
来自专栏灯塔大数据

推荐 | 6 款 Python 特殊文本格式处理库

前言 以下是一些 Python 编写的用来解析和操作特殊文本格式的库,希望对大家有所帮助。 1 Tablib https://www.oschina.net/p...

3676
来自专栏菜鸟程序员

关于Intel ME SA-00086 漏洞,你应该知道的更多

1103
来自专栏Crossin的编程教室

【Git 第3课】 安装Git

要用Git,首先肯定要安装它。简要说一下Win,Mac和Linux三种平台的安装方法。 Windows Git的官网(http://git-scm.com)提供...

3597

扫码关注云+社区

领取腾讯云代金券