前言,承接之前的 IOS开发涉及有点概念&相关知识点,这次归纳的是Android开发相关,好废话不说了。。
先声明下,Android开发涉及概念比IOS杂很多,可能有很多都题不到的。。
首先由于Android是基于Linux,而Linux又是用c山寨Unix的,但是为什么Android不用开发App,其实我也不懂,我想可能是java比较简单。
同样的,IOS为啥没用java,这个我也想可能是因为IOS是封闭的吧。。晕,又废话了。。好,开始吧,不过这次很多要查资料了,很多名词、单词不会啊!
首先还是系统架构的分层架构
1.Linux内核层 Linux Kernel,应该也是内存管理、进程、电源管理等,还有驱动什么的
2.类库&运行时 Library&Runtime
A.Lib:Sys C lib,Media lib,3D lib&OpenGL,Sqlite;C/C++编写的
B.Runtime:Android每个应用程序都是一个独立的Dalvik VM (即App的执行文件.dex)进程
3.框架层 Framework,即可为java调用系统功能的API
A.可视化视图,即View,和IOS一样,可见的控件都是继承于View的
B.内容提供者,活动管理器,窗口管理器
C.其他什么通知、资源管理器等
4.应用层,也就是App啦。。
开发主体相关
1.JAVA,这个也不用说的
2.SDK&JDK,
A.JDK,Java的JDK环境肯定是要的
B.SDK,AVD模拟器也在里面,还有很多Android版本和SDK版本也在里面
3.Eclipse,这个也不用多说了,不过其涉及几个工具
A.adt,android dev tooKit,
B.sdk,也就是上面说的软件开发工具包,
C.NDK,原生开发包,跳过JVM和C/C++等对接用的
D.Cygwin,这个也说下,模拟Linux环境,有时要用的,没有Linux的话
E.DDMS&Logcat,开发时基本要用到的,就是调试模拟器管理系统和调试信息Log输出查看类了
接着再来个项目目录介绍先
1.src,也不用说的
2.gen,R类,自动生成的
3.asserts,需用AssetsManager类通过全路径进行访问,打包时都会加上
4.res,资源文件夹,R.java文件中自动生成标记,打包时不一定加上
A.drawable,一般的界面相关图标、xml等文件
B.raw,一般的字体文件
C.layout,布局、界面文件
D.values,颜色、颜色、文字、本地化、单位等字符串描述文件
E.menu,菜单列表资源文件
F.anim&xml等,动画、xml资源文件等,还有、样式主题等
5.AndroidManifest.xml,大名鼎鼎的系统配置入口文件,几大组件、各种权限都要在里面注册什么的,N多,不过一般用到查就是了(一般查官网哦)
说完这个还有个四大组件要先说的(里面N多内容,这里不多细说)
1.Activity,活动,可以说就是UI,不过我觉得更有点像Controller
A.View,通过添加各种View组件呈现,setContentView()、Layout(View)、findViewById(),这个可能有点多,还是后面用UI来说吧
B.Intent和IntentFilter,意图,用在不同组件间传递信息的对象,Activity传值靠Binder机制(不同进程调用)
C.生命周期,前面还有进程生命周期,后面还有服务的生命周期,有点多,不过都挺像的,就给个图吧
这里主要还涉及存储Activity状态处理,一般方法是onSaveInstanceState,onCreate 、onStart 、onResume 、onPause 、onStop 、onDestroy 、onRestart
http://images.cnblogs.com/cnblogs_com/kofi/201104/201104101952161244.png
http://pic002.cnblogs.com/images/2012/325852/2012120122450787.png
D.TaskStack,任务栈,也就是多个Activity界面替换,进栈出栈的过程
2.Service
3.ContentProvider
4.BroadcastReceiver
开发用到相关知识点及概念
1.UI相关
2.数据存储,MD,总算好像把UI部分涉及写完了下!
3.网络
4.多线程
一些冷门,我不搞他不清楚啊
1.
2.
....
Android内容实在有点多,明天什么时候再接着写吧。。。
PS,原来还有想接着写J2EE的体系,看来还得想想先了。。。