编程学习方法之一就是:先运行起来
私以为,当下软件工程思想是有一些共性的,如果有过web开发经验,应该知道经典的MVC模式,不了解的请往下看
{
模型 Model,
视图 View,�
控制器 Controller
}
这是一种软件工程方法,是对复杂逻辑或者业务的解耦,好处是逻辑清晰,便于管理.
(番外:傅里叶变换,以及分型学中都揭示了复杂世界是由 [简洁] 的法则产生和运作的.
[ 简洁即优美 ]
[ 复杂不难,难的是简洁 ]
那么无论大小的软件工程项目,都可以分解为若干 弱耦合,相对简洁的小模块,
分而治之,简洁而强力的方法论
)
正题:
Model一般为数据模型,或者说是本质上程序操作的真实对象,
(程序操作对象 ===> 数据,
然而逻辑的处理等是也是为了操作 [数据] 而存在的, 这是面向过程,面向对象,或者说是当下流行编程方式的本质,
其期望是数据,或者说是围绕数据编程
而函数式编程,操作的本质是 [函数],通俗的讲是 方法
函数式编程的期望对象,不是数据,而是 [处理机] ,数据作为流动进[处理机]的驱动力,被[处理机]加工过之后输出.
函数式编程是围绕 [ 处理机 ]编程,为进一步降低耦合,以及加强复用,
较为形象理解是,解决数学题的时候,前者为了解题,关注的视角重心是得到最终数据,
一切围绕 正确的 前置值 过程值 最终值 而采用的方法
后者是, 先得到解决此类问题的 公理 或者说公式 或者说可以被归纳的简洁而强力方法论,
然后把届时面对的具体数据(值)流带入公理中,得到正确的值,只要模式识别的好 那很多问题解决的速度和强壮性会有不一样的提升
面向数据,和函数式编程,是一种较为抽象的方法思想,但思想是人类强大之所在,不是吗?
)
View 视图
模型Model和数据的具象化展现,或者说是UI,可视化的对象
一般包含多种图片,样式,字体等等资源resources
Controller 控制器
逻辑控制体,逻辑描述或者说是业务的实现,一般在此中实现
而Android开发中,四大组件也有此思想的体现,res文件夹放置视图文件,main文件夹放置逻辑...
那就从创建第一个Activity活动开始,
创建一个空Activity
右键main/java/xxx.xxxx.activitytest目录
->New->Activity->Empty Activity
按需求手动指定名字 例如 : FirstActivity
Activity Name: FirstActivity
因为第一次开发,为了解原理,建议勾选掉Generrate Layout File
返回代码中,可以看到,@Override 这段代码,
此段代码表示:
onCreate函数是父类固有函数这是对父类函数的重写,
如果不写,编译器会以为此onCreate函数是一个新函数,
通俗的讲,就是 把Android框架自有函数进行 [ 定制化 ]
// super在很多语言中都有实现:
// super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类
// 下列代码的意思是使用父类中onCreate方法,对savedInstanceState操作
super.onCreate(savedInstanceState);
下面创建视图,Layout布局,
右键res,New->Directory
名字为layout,布局
右键layout,New->Layout resource file
在IDE界面中,下面的标签切换到Text,可见代码
// 在视图上添加一个按钮
// 回到Activity活动代码中,以加载视图
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
}
}
最后,在AndroidMainfest中注册活动,使其生效
// 其中 标签指明了活动 name:,显示内容 label:
// 指明该活动为主活动 acton.MAIN
// 指明此活动为登录时显示的活动 category.LAUNCHER
运行模拟器后,显示的结果是