Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个:
前言: 每个应用程序都有若干个Activity组成,每一个Activity都是一个应用程序与用户进行交互的窗口,呈现不同的交互界面。因为每一个Acticity的任务不一样,所以经常互在各个Activity之间进行跳转,在Android中这个动作是靠Intent来完成的。你通过startActivity()方法发送一个Intent给系统,系统会根据这个Intent帮助你找到对应的Activity,即使这个Activity在其他的应用中,也可以用这种方法启动它。 Intent的定义: Intent是Andro
本篇主要介绍Activity相关面试题,既有基础知识,也有一些比较冷门的,但是面试官会问的比较晦涩的点。
Fragment概述 在Fragment出现之前,Activity是app中界面的基本组成单位,值得一提的是,作为四大组件之一,它是需要“注册”的。组件的特性使得一个Activity可以在整个app甚
在前边的第二十二篇文章里,已经分享了通过获取控件的坐标点来获取点击事件的所需要的点击位置,那么还有没有其他方法来获取控件点击事件所需要的点击位置呢?答案是:Yes!因为在不同的大小屏幕的手机上获取控件的坐标点,不是一样的,而是有变化的,因此在不同的手机机型上,我们可能都需要重新获取坐标点,这么操作起来,如果操作控件特别的多,那么获取控件的坐标点就会显得特别的繁琐。因此我们可以通过获取控件的ID来避免获取控件坐标点的这种弊端。 通过控件ID实现自动化脚本的运行,就性能而言,会比控件坐标的实现差一些;但是对于不同分辨率的设备都通用,不需要动态变换坐标。控件ID的获取主要是通过HierarchyViewer。下面就HierarchyViewer从打开方式和使用两方面进行讲解。
当某个应用组件启动且该应用没有运行其他任何组件时,Android 系统会使用单个执行线程为应用启动新的 Linux 进程。默认情况下,同一应用的所有组件在相同的进程和线程(称为“主”线程)中运行。 如果某个应用组件启动且该应用已存在进程(因为存在该应用的其他组件),则该组件会在此进程内启动并使用相同的执行线程。 但是,您可以安排应用中的其他组件在单独的进程中运行,并为任何进程创建额外的线程。
本文根据版本的不同介绍了两种在Android Studio中实现 NDK的方法:Android Studio2.2 以下 & 2.2以上
这个课程教你如何构建你的第一个应用。你讲会学到如何去创建一个安卓工程和启动一个可以调试的应用的版本。你将会学到一些安卓设计的基础,包括如何构建一个简单的用户界面和处理用户输入。
《Android开发艺术探索》读书笔记 (1) 第1章 Activity的生命周期和启动模式
平板电脑和手机最大的区别就在于屏幕的大小,一般手机的屏幕大小会在 3 英寸到 6 英寸之间,而一般平板电脑屏幕大小会在 7 英寸到 10 英寸之间。屏幕大小差距过大会导致同样的界面视觉效果有很大的差异。
一个样式(Style)是一个包含了指定样子和格式的作用于视图控件(View)或者窗体(Window)属性集合。一个style可以指定很多属性,比如 高度,填充,字体颜色,字体尺寸,背景色等。一个Style在xml资源文件中定义,并且和在xml中指定的布局区分开来。
前言 关于AMS,原计划是只写一篇文章来介绍,但是AMS功能繁多,一篇文章的篇幅远远不够。这一篇我们接着来学习与AMS相关的ActivityTask和Activity栈管理。 1.ActivityStack ActivityStack从名称来看是跟栈相关的类,其实它是一个管理类,用来管理系统所有Activity的各种状态。它由ActivityStackSupervisor来进行管理的,而ActivityStackSupervisor在AMS中的构造方法中被创建。 frameworks/base/servic
Spans是一个强大的概念,Span通过提供对TextPaint和Canvas等组件的访问,允许在字符或段落级别上对文本进行样式设计和修改。我们在之前的一篇文章中谈到了如何使用Spans,哪些Spans是开箱即用的,如何轻松创建自己的Spans,以及如何测试它们。
本文档介绍了在Android上的基本的NFC任务。它说明了如何发送和接收的NDEF消息(NDEF messages)的形式的表单里包含的NFC数据(NFC data),并介绍Android框架里支持这些功能的API。对于更高级的主题,包括与非NDEF数据的讨论,请参阅高级NFC。
Android LaunchMode是一个重要的概念,它定义了Activity的启动模式,决定了Activity在不同情况下如何启动。在面试中,LaunchMode相关的知识点经常被问到。本文将从10个疑难问题入手,深入剖析面试官的出发点,并提供详细解答,帮助读者在面试中展现扎实功底,脱颖而出。
Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上–例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。Fragment允许这样的一种设计,而不需要你亲自来管理 viewhierarchy的复杂变化。 通过将activity的布局分散到fragment中, 你可以在运行时修改activity的外观,并在由activity管理的back stack中保存那些变化.(http://developer.android.com/guide/topics/fundamentals/fragments.html)
Android中的窗口系统是应用程序用户界面的核心组件之一,它负责管理可视化区域、处理用户输入事件以及与系统UI交互。本文将深入介绍与Android窗口系统相关的重要概念,包括不同类型的窗口、创建窗口、窗口的特性和标志、生命周期以及如何创建自定义窗口。让我们开始吧!
随着智能终端硬件的不断革新,大尺寸设备的种类越来越丰富,比如手机、折叠屏设备、平板电脑、ChromeBook、外接显示器的 ChromeBox 和集成屏幕的 Chromebase 等。Google 团队正在将更多研发精力投入到 Android 框架、Jetpack 和 Chrome 操作系统中。
Shortcuts 功能跟随着 Android7.1 Nougat 一起诞生,其主要目在于用户可以定义一些常用的操作路径,以快捷方式的形式存在,这些快捷方式展示在可以支持的设备上,帮助用户快速启动常用或者推荐的页面和行为。
这是一个新的系列文章,我们称之为 "Modern Android Development 技巧",简称为 "MAD Skills"。本系列文章致力于帮助开发者们打造更好的现代 Android 开发体验,敬请关注。
Android面试常常吊死的问题 1、面试官:Context它是什么,有什么用? 2、面试官:什么是Armv7? 3、面试官:为什么字节码不能在Android中运行? 4、面试官:Gradle中的Bu
作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2020 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?
我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的个CityList 源码 百度搜就知道很多下载的地方 我写的东西有可能比较乱,如果单一的篇章没看明白,请看上一篇文章
3.(Android 7.0)AMP是AMN的内部类,它们都实现了IActivityManager接口,这样它们就可以实现代理模式,具体来讲是远程代理:AMP和AMN是运行在两个进程中的,AMP是Client端AMN则是Server端,而Server端中具体的功能都是由AMN的子类AMS来实现的,因此,AMP就是AMS在Client端的代理类。AMN又实现了BInder类,这样AMP和AMS就可以通过Binder来进行进程间通信。ActivityManager通过AMN的getDefault方法得到AMP,通过AMP就可以和AMS进行通信
转自:http://www.cnblogs.com/weeds/archive/2012/01/17/2324238.html
假如我们要隐式启动一个Activity我们需要成功匹配activity中的任意一个intent-filter。如果要成功匹配该intent-filter我们需要完全匹配该intent-filter中的 action、category、data。
Android之WindowManagerService介绍](https://www.jianshu.com/p/a9f66ab8b82e)
Android会同一系列核心应用程序包一起发布,该应用程序包包括Email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。
应用通常包括允许用户修改应用特性和行为的设置。例如,有些应用允许用户指定是否启用通知,或指定应用与云端同步数据的频率。
Mono for Android 初体验, 学习怎么使用 Mono for Anrdoid 创建 android 应用, 如何使用 Intent 启动 Activity , 如何在 Activity 之间传递参数。
1.Intent Intent 是一个消息传递对象,可以使用它从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个: 启动 Activity: Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity(),可以启动新的 Activity 实例。Intent 描述了要启动的 Activity,并携带了任何必要的数据。 如果希望在 Activity 完成后收到结果,可以调用 startActivityForResul
Fragment,直译为“碎片”,“片段”。 Fragment 表示 FragmentActivity 中的行为或界面的一部分。可以在一个 Activity 中组合多个片段,从而构建多窗格界面,并在多个 Activity 中重复使用某个片段。可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且可以在 Activity 运行时添加或移除片段(这有点像可以在不同 Activity 中重复使用的“子 Activity”)。
本文主要介绍了在 Android 开发中,关于 Activity 的 Task 和启动模式的简单探讨。首先介绍了什么是 Task,以及 Task 与 Activity 之间的关系。之后通过代码示例讲解了如何定义和启动 Task,以及如何使用 Intent 切换 Task。最后介绍了四种 Task 的启动模式,并给出了相应的示例代码。", "key": "android_task_and_start_mode
今天跟大家分享一个非常有趣的技术,如何在我们的App中实现类似于微信小程序的功能。
书名:Android应用开发揭秘 作者:杨丰盛 出版社:机械工业出版社 ISBN:9787111291954 出版日期:2010 年3月(1版2次) 开本:16 页码:515 版次:1-2 定价:69元 豆瓣网讨论地址: http://www.douban.com/subject/4200822/ China-pub预订地址: http://www.china-pub.com/196305
Kotlin,由 JetBrains 于 2011.07 推出,一款面向 JVM 在 Java 虚拟机上运行的静态类型编程语言。
如果你是Android开发者,那么可能已经听说过Flutter。 这是一个相对较新,用来开发跨平台原生应用的框架。 这不是第一个移动领域用于跨平台开发的框架,但它正在被谷歌使用,得益于谷歌的实力,让Flutter有一定的可信度。 尽管最初持有保留意见,但我决定尝试一下 – 结果Flutter在一周内彻底改变了我对移动开发的看法。 下面是我学到的东西。
使用android studio的安卓开发者可能发现它和eclipse+ADT大同小异,个人用完android studio之后发现android studio 除了界面比较炫酷以外,并没有多少优点.而且最被广大使用者诟病的内存占用大问题也没有解决:笔者发现,android studio比eclipse在开发安卓的时候更加占用内存,卡得不行. 不过,android studio在文件—新建的菜单中
在React Native的应用场景中,有时候一个APP只有部分页面是由React Native实现的,比如:我们常用的携程App,它的首页下的很多模块都是由React Native实现的,这种开发模式被称为混合开发。
原文地址:Underspanding spans 原文作者:Florina Muntenescu 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:tanglie1993 校对者:dandyxu, ALVINYEH Span 够为文字和段落设置样式,它是通过让用户使用 TextPaint 和 Canvas 等组件来实现这些功能的。在上一篇文章中,我们讨论了如何使用 Span、Span 是什么、Span 本身自带的功能,以及如何实现并测试自己的 span。 用 S
Flutter作为一种跨平台解决方案,经常会作为一个模块嵌入到原生Android与iOS应用中,Flutter与Android原生端的通信必不可少。所以本文就来讲述一下Android如何与flutter进行通信。
看标题你可能不知道是什么意思,我说一个场景你大概就明白了,比如在微信中收到了好友发过来的一个名为xxx.apk的文件,这是一个应用apk,而微信中收到后就是,xxx.apk.1。你点击这个文件接受之后,微信是无法直接打开,这个时候会有一个其他应用打开的按钮,你点击这个按钮会出现一个弹窗,里面会列举出能够打开apk文件的应用。
Android学习路线指南 http://blog.csdn.net/singwhatiwanna/article/details/49560409?utm_source=tuicool&utm_me
该面试宝典不仅收录了本人亲身面试遇到的问题,还收录了从一些朋友那里收集过来的问题。在以后的工作中本 人也会不断的更新和充实该面试宝典,当然也希望大家能够多多奉献比较优质的面试题。
http://blog.csdn.net/axi295309066/article/details/54089986
Android 8.0 为用户和开发者引入多种新功能。本文重点介绍面向开发者的新功能。
这个类提供了访问到 用户在线账户的集中式注册中心 的能力。用户为每账户输入一次 认证信息(credentials,包含用户名和密码),过过 点击一次(one-click)完成认证的方式,授权应用程序(app)访问 在线的资源。不同的服务具有不同的处理账户的认证的方式,而 Account Manager 使用了插件化的认证器模块 对应不同的账户类型。认证器(它由第三方组织编写)处理 验证账户认证信息的具体实际内容。并且保存账户信息。比如 谷歌,facebook,和微软每个都拥有他们自己的认证器。 许多服务支持 关于单一授权标记(authentication token,简写为auth token) 的一些概念,它常常被用于验证 向服务发出的不包含真实密码的授权请求。而auth token 常常被创建于独立包含用户认证信息(用户名和密码)的请求。AccountManager可以为应用程序生成认证标记(auth token),那么应用程序不在需要去直接处理密码。autho token常常可重用和被AccountManager缓存,但是被必须周期性刷新。当停止工作的时候,应用程序使得auth token无效化,以让auth token知道去重新生成它们。 应用程序访问服务通常通过下面几个步骤: 获得一个 AuccountManager的实例,通过 get(Context)方法。 列出可用的账户,使用getAccountsByType(String) 或者 getAccountsByTypeAndFeatures(String, String[],AccountManagerCallback, Handler).一般应用程序会对 一种指定的类型 的账户 感兴趣,它是认证器的标识。账户特性被用于标识特定账户的子类型和能力。账户类型和特性这两个是认证器规范字符串,并且必须被应用程序所知道,关于协调它们的首选认证器。 选择一个或者多个可用的账户,可能的话询问用户他们的偏好。如果没有匹配的账户可以使用,addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback, Handler) 将会被调用,提示用户创建一个适当类型账户 重要的:如果应用正在使用预先被记忆的账户选项,它必须确保账户仍然存在于一个被 通过 getAccountsByType(String)返 回的账户列表。为一个账户请求一个认证标记 不再导致 在设备结果中的“一个未定义的失败”。 使用auth token构建请求。auth token的表单,请求的格式,和使用的协议都特定于你要访问的服务。应用可以使用任何网络和协议库。 重要的:如果请求失败于一个“授权错误”,那么可能 缓存的auth token过期并且不再被服务端信任。应用必须调用 invalidateAuthToken(String, String)去移除auth token的缓存,另外请求将继续失败! 在使得auth token无效后, 立即返回到上面的“请求一个auth token”步骤。如果是第二次出处理失败了,那么它将被当做一次诚恳的认证失败来对待并 且通知用户或做其他适当处理。 一些AccountManager方法可能需要与用户交互,提示用户认证信息,呈现可选项,或者询问用户去添加账户。调用者可以选择是否允许AccountManager去直接启动必要的用户接口并且等待用户,或者返回一个intent,它是调用者可以启动接口。或者一些情况下,安装一个通知,它是用户可以选择去启动接口。让AccountManager直接启动接口,调用者必须提供当前 前端的Activity的Context. 许多AccountManager方法以 AccountManagerCallback 和 Handler作为参数。这些方法立即返回并且异步启动。如果一个回调被提供,那么run(AccountManagerFuture) 将在Handler的线程上被调用。结果被重新取得,是通过 “返回值”AccountManagerFuture 的 getResult()方法(也可以通过回调方法获得)。这个方法等待操作完成(如果需要的话)并且两者之一:返回结果或者 在操作过程中发生错误抛出异常。要使 请求 同步执行,通过方法接收到 future后立即调用 getResult()即可,不再需要提供回调。 请求可能被阻塞,包括getResult()在内,必须保证 从不在主线程被调用。如果在主线程被使用,那些操作将抛出IllegalStateException异常 。
领取专属 10元无门槛券
手把手带您无忧上云