android企业项目
① 安卓是哪个国家开发的
安卓是美国开发的。
2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。
2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。
2007年11月05日,谷歌宣布开发基于Linux平台的开源手机操作系统并命名为Android。
(1)android企业项目扩展阅读:
一、系统内核
Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。
Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。
Bionic/Libc/Kernel/ 并非标准的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。
下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。
二、内容提供
在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他直接访问的。Andorid当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。
应用想对外提供的数据,可以通过派生Content Provider类, 封装成一枚Content Provider,每个Content Provider都用一个uri作为独立的标识,形如:content://com.xxxxx。所有东西看着像REST的样子,但实际上,它比REST 更为灵活。
和REST类似,uri也可以有两种类型,一种是带id的,另一种是列表的,但实现者不需要按照这个模式来做,给id的uri也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。
② android项目怎么注册activity
1、打开AndroidManifest.xml文件
2、在application节点间插入
<activity android:name="com.example.testand.MainActivity"/>
com.example.testand.MainActivity是activity在工程中的路径。这是最简单的一个注册
其他activity中可选用属性有:
<activity android:allowTaskReparenting=["true" | "false"]
android:alwaysRetainTaskState=["true" | "false"]
android:clearTaskOnLaunch=["true" | "false"]
android:configChanges=["mcc", "mnc", "locale",
"touchscreen", "keyboard", "keyboardHidden",
"navigation", "orientation", "screenLayout",
"fontScale", "uiMode"]
android:enabled=["true" | "false"]
android:excludeFromRecents=["true" | "false"]
android:exported=["true" | "false"]
android:finishOnTaskLaunch=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:launchMode=["multiple" | "singleTop" |
"singleTask" | "singleInstance"]
android:multiprocess=["true" | "false"]
android:name="string"
android:noHistory=["true" | "false"]
android:permission="string"
android:process="string"
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"sensor" | "nosensor"]
android:stateNotNeeded=["true" | "false"]
android:taskAffinity="string"
android:theme="resource or theme"
android:windowSoftInputMode=["stateUnspecified",
"stateUnchanged", "stateHidden",
"stateAlwaysHidden", "stateVisible",
"stateAlwaysVisible", "adjustUnspecified",
"adjustResize", "adjustPan"] >
</activity>
(注:有些在application中重复的就不多阐述了)
1、android:alwaysRetainTaskState
是否保留状态不变, 比如切换回home, 再从新打开,activity处于最后的状态。比如一个浏览器拥有很多状态(当打开了多个TAB的时候),用户并不希望丢失这些状态时,此时可将此属性设置为true
2、android:clearTaskOnLaunch
比如 P 是 activity, Q 是被P 触发的 activity, 然后返回Home, 重新启动 P,是否显示 Q
3、android:configChanges
当配置list发生修改时, 是否调用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".
这个我用过,主要用来看手机方向改变的. android手机在旋转后,layout会重新布局, 如何做到呢?
正常情况下. 如果手机旋转了.当前Activity后杀掉,然后根据方向重新加载这个Activity. 就会从onCreate开始重新加载.
如果你设置了 这个选项, 当手机旋转后,当前Activity之后调用onConfigurationChanged() 方法. 而不跑onCreate方法等.
4、android:excludeFromRecents
是否可被显示在最近打开的activity列表里,默认是false
5、android:finishOnTaskLaunch
当用户重新启动这个任务的时候,是否关闭已打开的activity,默认是false
如果这个属性和allowTaskReparenting都是true,这个属性就是王牌。Activity的亲和力将被忽略。该Activity已经被摧毁并非re-parented
6、android:launchMode(Activity加载模式)
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式
Activity有四种加载模式:
standard、singleTop、singleTask、singleInstance(其中前两个是一组、后两个是一组),默认为standard
standard:就是intent将发送给新的实例,所以每次跳转都会生成新的activity。
singleTop:也是发送新的实例,但不同standard的一点是,在请求的Activity正好位于栈顶时(配置成singleTop的Activity),不会构造新的实例
singleTask:和后面的singleInstance都只创建一个实例,当intent到来,需要创建设置为singleTask的Activity的时候,系统会检查栈里面是否已经有该Activity的实例。如果有直接将intent发送给它。
singleInstance:
首先说明一下task这个概念,Task可以认为是一个栈,可放入多个Activity。比如启动一个应用,那么Android就创建了一个Task,然后启动这个应用的入口Activity,那在它的界面上调用其他的Activity也只是在这个task里面。那如果在多个task中共享一个Activity的话怎么办呢。举个例来说,如果开启一个导游服务类的应用程序,里面有个Activity是开启GOOGLE地图的,当按下home键退回到主菜单又启动GOOGLE地图的应用时,显示的就是刚才的地图,实际上是同一个Activity,实际上这就引入了singleInstance。singleInstance模式就是将该Activity单独放入一个栈中,这样这个栈中只有这一个Activity,不同应用的intent都由这个Activity接收和展示,这样就做到了共享。当然前提是这些应用都没有被销毁,所以刚才是按下的HOME键,如果按下了返回键,则无效
7、android:multiprocess
是否允许多进程,默认是false
具体可看该篇文章:http://www.bangchui.org/simple/?t3181.html
8、android:noHistory
当用户从Activity上离开并且它在屏幕上不再可见时,Activity是否从Activity stack中清除并结束。默认是false。Activity不会留下历史痕迹
9、android:screenOrientation
activity显示的模式
默认为unspecified:由系统自动判断显示方向
landscape横屏模式,宽度比高度大
portrait竖屏模式, 高度比宽度大
user模式,用户当前首选的方向
behind模式:和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)
sensor模式:有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换
nosensor模式:忽略物理感应器,这样就不会随着用户旋转设备而更改了
10、android:stateNotNeeded
activity被销毁或者成功重启时是否保存状态
11、android:windowSoftInputMode
activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
【A】当有焦点产生时,软键盘是隐藏还是显示
【B】是否减少活动主窗口大小以便腾出空间放软键盘
各值的含义:
【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
③ 如何用android studio做一个安卓app
Android studio作为面市不久的安卓开发工具,越来越受到大家的喜爱,这里我将介绍如何在Android studio中创建一个APP项目,并在以后经验中介绍其他有关Android studio的操作和编程方法。
工具/原料
Android studio
方法/步骤
1
打开软件,在菜单中选择file-》new project打开创建向导。
2
配置项目,确定各个名称和存放项目存放路径;
Application name:项目名称
Company Domain:公司域名
Package name:app打包名称
project location:存放路径
最好将名称中的examples去掉。
3
接下来设定兼容的安卓的最小版本,这依情况而定,我这里设定为安卓2.3版本。
4
如果不确定各个版本的区别,可以点击“help me choose”,在打开的窗口中介绍了各个安卓版本的功能。
步骤阅读
5
确定后最小兼容版本后,选择项目的活动类型,这里有很多现成的模板可以使用,对于初学者选择默认的Blank Activity即可。
6
接下来设定活动名称,界面布局的名称,以及界面标题,最后点击finish完成项目的创建。
7
创建完后,在项目名-》app-》src-》main-》res-》layout下双击xml文件就是打开活动界面设计窗口了。
END
注意事项
注意根据情况合理选择安卓的最小兼容版本
Android studio教程 (共6篇)
④ 有什么好的发展项目:Android客户端
多考虑未来的需求和变动了就设计过度了,于是出现了就真是几十行的代码,写出各种类各种接口。
最近学到的倒是基于android特性进行开发,ui上可以从需求分析到android控件的选择比如fragment,slidingmenu,actionbar,navigation drawer等。
整体架构上,数据库层和ui刷新,数据异步读取,使用contentprovider(数据库操作像rest api一样的风格),cursorloader,网络请求的intentservice,resultreceiver,gson等。
设计思路上,分层--还是走的mvc嘛,虽然最近也有用mvp,不过不管怎么样关键还是要有分层的意识吧;解耦--面向接口编程啊,依赖倒置都是;抽象能力:其实我觉得抽象能力很重要的,不过自己现在抽象能力也很弱,没啥建议。
好的开源项目:我觉得倒是没什么统一框架,可以看看foursquare,google io app的源码都是相当好的,android源码永远是值得读的。
⑤ Android Studio项目创建和模拟器配置
实验楼提供了Android开发的基础课程和项目实验。通过此课程,新学习者能熟悉Android开发环境、基本操作技巧和调试方法,为后续课程打下坚实基础。课程分为两大部分:
一、实验简介与Android Studio入门
实验楼推荐从Android Studio开始探索,这是一个广泛使用的Android开发环境,支持Linux、Windows和Mac OS X操作系统。实验楼课程开头通常会指导学员创建名为XXXPractice的项目,使用com.shiyanlou.android.xxxpractice作为包名,基于Android 5.1版本的SDK,通过Blank Activity模板生成一个名为MainActivity的类文件。此步骤引导学员了解Android Studio操作和创建项目的基础知识。
二、深入探索Android Studio与模拟器配置
Android Studio的欢迎界面和功能介绍,包括Recent Projects和Quick Start选项,帮助学员熟悉环境。在创建新项目时,学员需选择项目名称、公司域名和存放位置。在配置目标Android设备时,学员可根据应用需求选择手机、平板、电视、手表或Google Glass等平台,并设置最小SDK版本号。选择模板创建Activity,例如Blank Activity,是创建应用页面的基础步骤。项目创建完成后,Android Studio会自动生成项目结构和Gradle信息,为学员提供完整的开发环境。
三、模拟器配置与启动
模拟器是开发Android应用时不可或缺的工具,允许开发者在没有实际设备的情况下预览、开发和测试应用。通过Android Studio的AVD Manager,学员可以创建和配置模拟器。选择设备模板、系统镜像版本(如Android 5.1.1)以及设置屏幕缩放比例(建议使用默认或2dp on device = 1px on screen),并配置其他参数,如设备名称和GPU选项。在模拟器启动后,学员可编译并运行项目,体验应用在模拟器上的效果。
四、项目编译与运行
完成项目源代码、资源文件和外部库的编辑后,学员可以使用Android Studio工具栏的运行按钮,将项目编译成apk安装包。在调试阶段使用debug证书,正式发布应用时则需使用自己的证书。实验楼课程会提供后续关于证书的详细讲解。
实验总结
本实验通过学习如何在Android Studio中创建项目并配置模拟器,为学员提供了Android开发的基础技能。后续课程将深入探索Android Studio的更多功能和实践。推荐Android研发工程师从学习路径开始,探索更多与Android开发相关的课程。