❶ android中的context是什么东西
Context,中文直译为“上下文”,SDK中对其说明如下:
Interface to global information about an application environment. This is an abstract class whose implementation
is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls
for application-level operations such as launching activities, broadcasting and receiving intents, etc
从上可知一下三点,即:
1、它描述的是一个应用程序环境的信息,即上下文。
2、该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现类(后面我们会讲到是ContextIml类)。
3、通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Activity,发送广播,接受Intent信息等。
❷ android是什么语言编写的
Java,是由Sun
Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java
applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java
applet。 Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个
Activity
类(class)负责创建视窗(window),一个活动中的Activity就是在
foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的
Activity
全部画面被其他
Activity
取代时,该
Activity
便被停止(stopped),甚至被系统清除(kill)。
View等同于J2ME的Displayable,程序人员可以通过
View
类与“XML
layout”档将UI放置在视窗上,Android
1.5的版本可以利用
View
打造出所谓的
Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android
Hero手机即含有大量的widget。至于ViewGroup
是各种layout
的基础抽象类(abstract
class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity
中,要通过findViewById()来从XML
中取得View,Android的View类的显示很大程度上是从XML中读取的。View
与事件(event)息息相关,两者之间通过Listener
结合在一起,每一个View都可以注册一个event
listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。
❸ android 接口和抽象的区别
抽象类:
含有abstract修饰符的class 即为抽象类,
abstract类不能创建实例对象,
含有abstract的方法的类必须定义为abstract class ,
abstract class 里的方法不必是抽象的,
抽象来中定义抽象方法必须放在具体子类中实现,所以,不能有抽象的构造方法或抽象的静态方法,如果子类没有实现抽象父类中的所有方法,那么,子类也必须定义为抽象类。
接口:
接口(interface)可以说成是抽象类的特例。接口中的所有方法都必须是抽象的,接口中的方法定义默认为public abstract 。接口中的变量是全局常量,即public static final修饰的。
语法上的区别:
1,抽象类里可以有构造方法,而接口内不能有构造方法。
2,抽象类中可以有普通成员变量,而接口中不能有普通成员变量。
3,抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。
4,抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5,抽象类中可以包含静态方法,接口内不能包含静态方法。
6,抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static类型,并且默认为public static类型。
7,一个类可以实现多个接口,但只能继承一个抽象类。
再补充点两者在应用上的区别:
❹ android 类 abstract前缀什么意思
1、 这是一种特殊的命名规范。
2、对于抽象类,应该使用 Abstract 前缀。
举手之劳,希望能帮到你。
❺ Android下Context,Activity,Application之间有什么区别
我发现这个表超级有用的决定何时使用不同类型的上下文:
应用程序可以从这里开始一个活动,但它需要一个新的任务被创建。 这可能适合特定的用例,但是可以创建标准栈行为一般不建议在您的应用程序,或者一种不错的做法。
这是合法的,但通货膨胀将使用默认主题您正在运行的系统,而不是在应用程序中定义的。
允许如果接收者是null,用于获取的当前值的广播,在安卓4.2及以上。
外网译文:
上下文对象是如此普遍,如此频繁的传递,很容易创建一个情况你没有意愿。 加载资源,推出一个新的活动,获得一个系统服务,内部文件路径,所有需要创建视图上下文(这是没有开始的完整列表!)来完成这项任务。 我想做的就是为你提供一些见解上下文作品和一些技巧,这些技巧将(希望)允许您在应用程序中更有效地利用它。
上下文类型
并不是所有的上下文实例都是平等的。 根据Android应用程序组件上下文你可以访问略有不同:
应用程序——是一个单例实例中运行您的应用程序的过程。 它可以通过访问方法getApplication()从一个活动或服务getApplicationContext()从任何其他对象继承上下文。 无论它如何访问,你总是会收到相同的实例从内部流程。
活动/服务——继承ContextWrapper实现相同的API,但是代理所有的方法调用一个隐藏的内部上下文上下文实例,也被称为它的基地。 每当框架创建一个新的活动或服务实例,它还创建了一个新的ContextImpl实例做所有组件将包装的重任。 每个活动或服务,及其相应的基础背景,是独一无二的每个实例。
BroadcastReceiver——不是一个上下文本身,而是通过一个框架上下文在onReceive()每次新的广播事件出现的原因。 这个例子是一个ReceiverRestrictedContext有两个主要功能残疾;调用registerReceiver()和bindService()。 这两个函数不允许从内部现有的BroadcastReceiver.onReceive()。 每次一个广播接收器流程,上下文交给一个新实例。
内容提供者——也不是上下文但给出了一个创建时,可以通过访问getContext()。 如果ContentProvider运行本地调用者(即同一应用程序的过程),那么这个单会返回相同的应用程序。 然而,如果两个单独的进程,这将是一个新创建的实例代表包中运行的提供者。
保存引用
我们需要解决的第一个问题来自储蓄的引用上下文在一个对象或类的实例的生命周期,超出你救了。 例如,创建一个自定义需要的单例上下文加载资源或访问ContentProvider,并保存当前活动或服务的引用的单例。
坏的单例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
公共 类 CustomManager {
私人 静态 CustomManagersInstance;
公共 静态 CustomManagergetInstance(上下文上下文) {
如果 (sInstance = = 零) {
sInstance = 新 CustomManager(上下文);
}
返回 sInstance;
}
私人 上下文mContext;
私人 CustomManager(上下文上下文) {
mContext = 上下文;
}
}
这里的问题是我们不知道上下文来自,不安全持有对象的引用如果它最终成为一个活动或一个服务。 这是一个问题,因为单是由一个单一的静态引用在封闭类。 这意味着我们的对象,和所有其他对象引用它,永远不会被垃圾收集。 如果这上下文是一个活动,我们会有效地持有人质在内存中所有与它相关的观点和其他潜在的大对象,创建一个泄漏。
为了防止这一点,我们修改单总是参考应用程序上下文:
更好的单例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
公共 类 CustomManager {
私人 静态 CustomManagersInstance;
公共 静态 CustomManagergetInstance(上下文上下文) {
如果 (sInstance = = 零) {
/ /总是通过在应用程序上下文
sInstance = 新 CustomManager(上下文。getApplicationContext());
}
返回 sInstance;
}
私人 上下文mContext;
私人 CustomManager(上下文上下文) {
mContext = 上下文;
}
}
现在我们并不重要上下文来自,因为参考我们是安全的。 应用程序上下文本身就是一个单,所以我们没有泄露任何通过创建另一个静态引用。 另一个很好的例子,这可以出现的地方保存一个引用上下文从正在运行的后台线程或等待处理程序。
那么,为什么我们不能总是只是引用应用程序上下文? 以中间人的方程,,,永远不必担心创造泄漏? 答案,我在引言中提到,是因为一个上下文不等于另一个。
上下文的能力
您可以安全地采取共同行动与给定上下文对象取决于最初是从哪里来的。 下面是一个表的常见应用程序将接收的地方上下文,在每一种情况下是很有用的:
应用程序
活动
服务
内容提供者
BroadcastReceiver
显示一个对话框 没有 是的 没有 没有 没有
开始一个活动 没有1 是的 没有1 没有1 没有1
布局的通货膨胀 没有2 是的 没有2 没有2 没有2
启动一个服务 是的 是的 是的 是的 是的
绑定到一个服务 是的 是的 是的 是的 没有
发送一个广播 是的 是的 是的 是的 是的
注册BroadcastReceiver 是的 是的 是的 是的 没有3
加载资源值 是的 是的 是的 是的 是的
应用程序可以从这里开始一个活动,但它需要一个新的任务被创建。 这可能适合特定的用例,但是可以创建标准栈行为一般不建议在您的应用程序,或者一种不错的做法。
这是合法的,但通货膨胀将使用默认主题您正在运行的系统,而不是在应用程序中定义的。
允许如果接收器零,用于获取的当前值的广播,在安卓4.2及以上。
用户界面
从看着前面的表中可以看到,有很多功能的应用程序上下文是适合处理不当;他们与UI相关的工作。 事实上,只有实现装备来处理所有与UI相关的任务活动,其他实例票价差不多在所有类别。
幸运的是,这三个动作是一个应用程序并没有任何地方做一个活动的范围之外,就像框架是故意这样设计的。 试图展示一个对话框创建应用程序上下文的引用,或者开始一个活动的应用程序上下文将抛出一个异常且应用程序崩溃…一个强大的指示器出事了。
不太明显的问题是膨胀布局。 如果你读过我的最后一块布局的通货膨胀,你已经知道它可能是一个有点神秘的过程和一些隐藏行为,使用正确的上下文与另一个的行为。 而框架不会抱怨,将返回一个完美的从一个视图层次LayoutInflater创建应用程序上下文,主题和风格的应用程序将不考虑过程。 这是因为活动是唯一的上下文清单中定义的主题实际上是连接。 任何其他实例将使用系统默认主题膨胀你的视图,导致显示输出你可能没想到。
这些规则的十字路口
总是,有人会到达这两个规则冲突的结论。 有一个案件在长期引用的应用程序当前的设计必须保存,我们必须拯救一个活动因为我们想要完成的任务包括UI的操作。 如果是这样的话,我就会劝你重新考虑你的设计,因为这将是一个教科书的实例战斗框架。
经验法则
在大多数情况下,使用上下文直接提供给你从封闭组件在工作。 您可以安全地举行的引用,只要引用不超越该组件的生命周期。 一旦你要保存的引用上下文从一个对象的生活超出你的活动或服务,即使暂时,开关,参考您保存到应用程序上下文。
❻ android手机是什么意思
android手机意思是:使用Android操作系统的手机。
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。
(6)androidabstract扩展阅读
Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。
Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。
其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象征。有时候,它们还会使用纯文字的Logo。