`
seya
  • 浏览: 358862 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Android学习系列之一

阅读更多
          Android学习系列之一 What’s Android? Getting started
    今天学习了第一部分,对于Android的整体结构有了个认识。由底向上依次是基于Linux内核的操作系统、内库和Android runtime,Application framework、最上面的Application。程序用Java语言进行开发。整个平台对底层的包装入微,只提供给开发者一些接口。曾经有人反对将Java作为大学主要的计算机语言来学习,原因就是它让学生最后都忙于翻箱倒柜地找接口。所以,熟练掌握Android提供的API对于我们开发来说是必不可少的。
Application framework:
View 的设计:与Java swt,swing不同在于他是在配置文件中编写,比较灵活。降低了耦合性。
Content provider:用于不同程序之间数据的访问和数据共享
Resourse manager:提供对于本地字符串,布局,图形这些非代码文件的访问
Notification manager使应用程序能在状态栏上提供自定义的警告
Activity manager 管理应用程序的生命周期,提供回退导航。
Libraries:
     C library
     Media libraries:支持视频(mpeg4/h264),音频(mp3/AAC/AMR),静态图形文件(只限jpg和png)的播放
     Freetype : 位图和矢量字体渲染
     SQLite:轻量级关系数据库引擎
Android runtime:
    每个Android application都有自己的独立进程。运行自己的Dalvik VM实例。DVM 支持在一个设备上同时运行多个实例。在运行时,将已经编译的java class文件通过dx 工具转换为.dex文件,进行优化,减少对内存的占用。这和Android的特性使相关的。手机软件必须占用尽量少的内存,才能更快的响应。
    记得当时配置好了环境,运行第一个HelloWorld project,看到模拟器上跳出Hello World两个词的时候还是很兴奋的。接着去研究项目的结构。主要由这样几个部分组成:Activity, Intent&Intent Filter, Intent Receiver, Service和Content Provider,。Activity简单说就是在屏幕上显示的内容,是一个继承了Activity类的java 类,在显示的时候要通过layout, view进行布局。而当你想从一个屏幕转向另一个屏幕的时候,就需要Intent了。整个项目有个Activity注册中心,通过创建一个Intent实例来指向某个activity,(似乎也可以不指向某个具体的activity class)。Intent Filter 用于描述这个activity所能处理的intent. 调用startActivity(MyIntent)转向另一个屏幕,startSubActivity(MyIntent)弹出子窗口。Intent Receiver与Notification Manager相似。用于接受来自外部的消息,比如来了电话,网络不可用,地理位置的改变等等。可以在AndroidManifest.xml中注册,也可以在代码中通过Context.registerReceiver()方法使用。Service是一个幕后工作者,不需要界面。比如你可以打开播放器放一首歌,然后跳出来去看短信,播放歌曲仍然在后台工作。当你想要将某些数据提供给其他应用程序共享的时候,不要忘了Content Provider,它是一个类,实现了让其他应用程序存储和取得数据类型的接口。Android中的进程分为5个层次,ForeGround process:1 当前正在运行的activity.,onResume方法被调用.2 IntentReceiver正在运行,IntentReceiver.nReceiveIntent()被调用。3 service被回调执行。Service.OnCreate(),Service.OnStart(),Service.OnDestory().被调用。Visiable process:一个activity可见,但是处于暂停状态,当前窗口关闭了以后才轮到他执行。onPause()方法被执行。Service process:有一个service的 service.startService()方法被执行。Background process: 不可见的activity,onStop()都被执行。最后是empty process:不包含任何activity,只是为了加快程序下次的运行速度而设的一个缓存。当内存不够时,这一部分最先被回收。
零零碎碎的东西还是不少的,通过NotePad的练习巩固了一下,有个更加理性的认识。首先,项目启动的时候,启动adb,然后运行模拟器,在通过adb install myapplication.apk,将数据加载到模拟器上。(记得以前用Android_SDK_m3的时候,当这个 myapplication.apk之前已经存在的话,并不会去覆盖它。还要手动shell到/app/data下去删掉,它才能加载进去。现在用m5,可以覆盖了~~。)然后就可以去泡杯咖啡慢慢等了~~(m5的模拟器应用程序图标、字体变大了,等待时间也变长了不少@_#!!)。通常等到的是一个not responding的提示。点wait.进去。NotePad中主要涉及到的有对sqlite数据库的操作、activity之间通过Intent转向,以及他们之间通过Bundle的数据传递。还有界面上按钮、行点击的事件响应处理。在这里就不一一敷述。光看sdk没用,还得通过练习加深理解。以后用到某个功能的时候回头copy一下也是不错滴~
分享到:
评论

相关推荐

    Android学习资源网址

    在当今移动互联网时代,Android操作系统作为全球最广泛使用的移动设备平台之一,其重要性不言而喻。对于开发者而言,掌握Android开发技能不仅能够提升个人职业竞争力,还能够为用户提供更加丰富、便捷的应用体验。...

    Android学习系列教程实例.pdf

    Android学习系列教程实例文档涵盖了Android开发的核心知识点。它详细地介绍了从基础到高级技术的各个方面,旨在帮助开发者深入理解Android系统架构、开发过程以及优化技巧等。 首先,文档回顾了Android的发展历史,...

    Android学习系列之gradle实战

    ### Android学习系列之Gradle实战 #### 一、Gradle Wrapper 概述 在Android开发过程中,Gradle作为构建工具被广泛使用。然而,在多开发者协作的项目中,不同的开发者可能会使用不同版本的Gradle,这可能导致构建...

    Android学习之路——4.Activity简介

    这篇博客"Android学习之路——4.Activity简介"很可能会详细解释Activity的基本概念、生命周期以及如何在实践中使用它。 Activity作为Android应用程序的一个窗口,它可以显示用户界面,并响应用户的交互。每个...

    Android-学习Kotlin的一系列教程

    - LiveData是Android Jetpack组件之一,用于构建响应式数据流。 - ViewModel负责存储UI相关的数据,即使设备旋转也能保持数据。 - 结合Kotlin,学习如何优雅地实现数据绑定和生命周期管理。 7. **Kotlin的高级...

    android入门学习资料

    Android作为全球最受欢迎的智能手机操作系统之一,吸引着众多开发者投入其怀抱。本套学习资料旨在帮助初学者快速掌握Android开发的基本技能,内容涵盖Android开发中文文档以及一系列由eoeAndroid推出的特刊,为您的...

    android学习文档

    首先,"Android入门教程"是开始Android学习之旅的关键。这个教程通常会介绍Android开发环境的搭建,包括安装Android Studio,这是Google官方推荐的集成开发环境(IDE)。在Android Studio中,你可以创建新的项目,...

    android 学习心得

    `Android-Manifest.xml` 文件是每个Android应用的核心配置文件之一,用于向Android系统声明应用的各种组件和权限需求等。其中 `<activity>` 标签用于定义应用程序的一个或多个Activity组件。 - **`android:...

    老罗Android之旅系列课件

    通过学习这一系列的PPT资料,开发者能够掌握Android开发的基础知识,理解系统内部运作原理,提升应用性能优化的能力,并为构建高质量的Android应用打下坚实基础。无论是初学者还是经验丰富的开发者,都能从中...

    Android学习系列(1)

    ### Android学习系列(1): APK签名与ZipAlign详解 #### 概述 在开发Android应用的过程中,为了确保应用的安全性和一致性,对应用进行签名是非常重要的一个步骤。此外,使用ZipAlign工具来优化APK文件也是提升用户...

    Android学习之AChartEngine折线图

    这篇博客“Android学习之AChartEngine折线图”将引导我们深入理解如何使用AChartEngine库来创建和定制折线图。 首先,我们需要了解AChartEngine的基本概念。AChartEngine是一个轻量级的库,它的主要功能是生成可...

    Android学习笔记之Button,Toast,menu的简单用法

    在Android应用中,Menu主要用于在屏幕顶部或者底部显示一系列可选操作,通常在Activity的onCreateOptionsMenu()方法中创建: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater...

    android 动车之一

    【Android 动车之一】是针对初学者设计的一系列教程,旨在帮助新手快速入门Android开发。这个教程可能包含了从环境配置、开发工具安装到编写第一个Android应用的全过程,通过过程截图来直观展示每个步骤,使得学习...

    Android基础系列之布局和控件

    通过`android:layout_align`系列属性来定义相对位置。 3. **帧布局(FrameLayout)**:将子视图堆叠在一起,最后一个添加的视图通常位于顶部。 4. **网格布局(GridLayout)**:将视图分到行和列中,类似于电子...

    Android学习路线和职业规划探讨.pdf

    Android作为目前最流行的操作系统之一,拥有庞大的用户群体和开发者社区。对于想要进入移动开发领域的程序员来说,掌握Android的知识体系和学习路线至关重要。在学习过程中,不仅要关注基础知识点,还要逐步深入,...

    173个Android项目源码之系列一

    资源是173个Android项目源码系列一,这个是173个项目的部分,由于上传文件大小受限,173只好分成了4个部分了,亲们有兴趣的可以下过来学习学习,如果不够,我的资源中还有剩下的系列部分也可以下载。

    Android学习之Android 5.0分享动画实现微信点击全屏效果

    在Android开发中,实现丰富的用户交互和视觉效果是提升应用体验的关键之一。本文将深入探讨如何在Android 5.0及以上版本中实现类似微信的点击分享动画,即当用户点击分享按钮时,整个屏幕会充满动画效果。我们将通过...

    Android学习之路

    ### Android学习之路——核心知识点详解 #### 一、Java基础 **重要性**: Java是Android应用开发的基础语言,没有良好的Java基础,很难深入理解和开发高质量的Android应用。 **知识点**: 1. **Java基础语法**: ...

Global site tag (gtag.js) - Google Analytics