1. 首页
  2. 热点

安卓软件用什么语言编写程序(Android studio用的语言作用java)

引言

Andid 应用程序使用Java做为语言。aapt工具把编译后的Java代码连同其它应用程序需要的数据和资源文件一起打包到一个Andid包文件中,这个文件使用.apk做为扩展名,它是分发应用程序并安装到设备的媒介,用户只需并安装此文件到他们的设备。单一.apk文件中的所有代码被认为是一个应用程序。

从很多方面来看,每个Andid应用程序都存在于它自己的世界之中:

    默认情况下,每个应用程序均运行于它自己的Linux进程中。当应用程序中的任意代码开始执行时,Andid启动一个进程,而当不再需要此进程而其它应用程序又需要资源时,则关闭这个进程。每个进程都运行于自己的Java虚拟机(VM)中。所以应用程序代码实际上与其它应用程序的代码是隔绝的。默认情况下,每个应用程序均被赋予一个的Linux用户ID,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应用程序所访问。

使两个应用程序共有同一个用户ID是可行的,这种情况下他们可以看到彼此的文件。从资源的角度来看,拥有同一个ID的应用程序也将在运行时使用同一个Linux进程,以及同一个虚拟机。

应用程序组件

Andid的核心能之一就是一个应用程序可以使用其它应用程序的元素(如果那个应用程序允许的话)。比如说,如果你的应用程序需要一个卷动列表,而另一个应用程序已经了一个合用的而又允许别人使用的话,你可以直接调用那个卷动列表来完成工作,而不用自己再一个。你的应用程序并没有吸纳或链接其它应用程序的代码,它只是在有需求的时候启动了其它应用程序的那个能部分。

为达到这个目的,必须在一个应用程序的一部分被需要时启动这个应用程序,并将那个部分的Java对象实例化。与在其它上的应用程序不同,Andid应用程序没有为应用准备一个单独的程序(比如说,没有in方法), 而是为依照需求实例化提供了基本的组件。共有四种组件类型:

Activity

Activity**是为用户操作而展示的可视化用户界面。比如说,一个activity可以展示一个菜单项列表供用户选择,或者显示一些包含说明的照片。一个短应用程序可以包括一个用于显示做为发送对象的联系人的列表的activity,一个给选定的联系人写的activity以及翻阅以前的和改变设置的activity。尽管它们一起组成了一个内聚的用户界面,但其中每个activity都与其它的保持。每个都是以Activity类为基类的子类实现。

一个应用程序可以只有一个activity,或者,如刚才提到的应用程序那样,包含很多个。每个activity的作用,以及其数目,自然取决于应用程序及其设计。一般情况下,总有一个应用程序被标记为用户在应用程序启动的时候第一个看到的。从一个activity转向另一个的方式是靠当前的activity启动下一个。

每个activity都被给予一个默认的窗口以进行绘制。一般情况下,这个窗口是满屏的,但它也可以是一个小的位于其它窗口之上的浮动窗口。一个activity也可以使用超过一个的窗口──比如,在activity运行过程中弹出的一个供用户反应的小对话框,或是当用户选择了屏幕上特定后显示的必要信息。

窗口显示的可视内容是由一系列视构成的,这些视均继承自 View 基类。每个视均控制着窗口中一块特定的矩形空间。父级视包含并组织它子视的布。叶节点视(位于视层次端)在它们控制的矩形中进行绘制,并对用户对其直接操作做出响应。所以,视是activity与用户进行交互的界面。比如说,视可以显示一个小,并在用户指点它的时候产生动作。Andid有很多既定的视供用户直接使用,包括按钮、文本域、卷轴、菜单项、复选框等等。

视层次是由方法放入activity的窗口之中的。上下文视是位于视层次根位置的视对象。

服务

服务没有可视化的用户界面,而是在一段时间内在后台运行。比如说,一个服务可以在用户做其它事情的时候在后台背景音乐、从上获取一些数据或者计算一些东西并提供给需要这个运算结果的activity使用。每个服务都继承自Service]基类。

一个媒体器列表中的曲目是一个不错的例子。器应用程序可能有一个或多个activity来给用户选择曲并进行。然而,音乐这个任务本身不应该为activity所处理,因为用户期望在他们离开器应用程序而开始做别的事情时,音乐仍在继续。为达到这个目的,媒体器activity应该启用一个运行于后台的服务。而将在这个activity不再显示于屏幕之后,仍维持音乐服务的运行。

你可以连接至(绑定)一个正在运行的服务(如果服务没有运行,则启动之)。连接之后,你可以通过那个服务出来的接口与服务进行通讯。对于音乐服务来说,这个接口可以允许用户暂停、回退、停止以及重新开始。

如同activity和其它组件一样,服务运行于应用程序进程的主线程内。所以它不会对其它组件或用户界面有扰,它们一般会派生一个新线程来进行一些耗时任务(比如音乐回放)

广播接收器

广播接收器是一个专注于接收广播信息,并做出对应处理的组件。很多广播是源自于代码的──比如,时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播──比如说,其它应用程序一些数据完成并处于可用状态。

应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的信息予以响应。所有的接收器均继承自BadcastReceiver基类。 广播接收器没有用户界面。然而,它们可以启动一个activity来响应它们收到的信息,或者用NotificationMar来用户。可以用很多种方式来吸引用户的注意力──闪动背灯、震动、声音等等。一般来说是在状态栏上放一个的标,用户可以打开它并获取。

内容提供者

内容提供者将一些特定的应用程序数据供给其它应用程序使用。数据可以存储于文件、SQLite数据库或其它方式。内容提供者继承于ContentPvider基类,为其它应用程序取用和存储它的数据实现了一套标准方法。然而,应用程序并不直接调用这些方法,而是使用一个 ContentResolver对象,调用它的方法作为替代。ContentResolver可以与任意内容提供者进行会话,与其合作来对所有相关交互通讯进行。

每当出现一个需要被特定组件处理的请求时,Andid会确保那个组件的应用程序进程处于运行状态,或在必要的时候启动它。并确保那个相应组件的实例的存在,必要时会创建那个实例。

后这里放上我耗时两个月,将自己8年 Andid 的知识笔记整理成了一份学资料笔记,技术相关的知识点在笔记中都有详细的解读并且把每个技术点整理成了 PDF 文档(知识脉络 + 诸多细节)有需要的小伙伴:可以私信发送”笔记”就可以取了

原创文章,作者:来自网络,如若转载,请注明出处:https://dfclxwc.com/1542.html

联系我们

400-000-0000

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息