移动互联网开发技术教学网站项目研究第一篇
目录
- 移动互联网开发技术教学网站项目研究第一篇
- android studio架构理解
- 项目创建尝试
- 项目创建流程
- 主要文件分析
- 编写简单的代码
- 注
- 错误解决
- 项目初步分析
- 文件结构
- 项目代码MainActivity
- Android 学习
android studio架构理解
1.Application(应用程序层) 我们一般说的应用层的开发就是在这个层次上进行的,当然包括了系统内置的一组应用程序,使用Java语言
2.Application Framework(应用程序框架层) 无论系统内置或者自己编写的App,都需要使用到这层。
3.Libraries(库) + Android Runtime(Android运行时) Android提供了一组C/C++库,为平台的不同组件所使用。
项目创建尝试
项目创建流程
1、首先点击new->new project
2、选择想要创建的Android 的模板,建议选择empty activity(空模板),然后next
3、Name:创建项目的名称;API level:选择Android 虚拟机的版本,版本越低运行起来越快;其余选项默认,后点击Finish
4、项目创建完成
主要文件分析
上图为新建项目文件结构
AndroidManifest.xml:Android应用程序的清单文件,是整个Android应用程序的描述文件;
MainActivity:描述用户与屏幕之间的交互,以便用户进行操作,实现主要JAVA代码;
res:所有资源文件都会在R.java文件下生成对应唯一的资源id;
drawable:存放各种位图文件或者一些Xdrawable类型的ML文件;
layout:存放布局文件;
mipmap:存放图片;
values:colors.xml:定义颜色资源;string.xml:定义字体资源;theme为主题文件;
activity_main.xml:Android的UI界面显示视图,设计控件的代码。
编写简单的代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!!!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/bt_android"
android:layout_width="301dp"
android:layout_height="wrap_content"
android:onClick="Welcome"
android:text="Android Studio" />
</LinearLayout>
android:orientation=“vertical” 组件垂直摆放
显示一个文本TextView和按钮Button
点击Split显示视图如下:
MainActivity中添加按钮弹出Toast
public void Welcome(View view) {
Toast.makeText(this, "欢迎来到安卓世界", Toast.LENGTH_SHORT).show();
}
运行截图如下:
注
setContentView(R.layout.activity_main);//布局绑定
其中R是索引类,把r文件下的所有文件进行资源目录的索引,通过索引号找到响应的静态成员。
错误解决
打开android studio报错:Android Studio missing essential plugin org.jetbrains.android
原因:不小心把 android studio 的 kotlin 插件关闭,然后重新打开无法启动
解决办法:删除C:\Users\26046\AppData\Roaming\Google\AndroidStudio2020.3\disabled_plugins.txt,重新打开即可
项目初步分析
文件结构
项目代码MainActivity
MainActivity代码:
ImageButton mButton = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (ImageButton)findViewById(R.id.main_circle_button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//下面是自己想要实现的功能
//此处实现跳转
Intent intent = new Intent();
//Music_List为跳转后到达的页面
intent.setClass(MainActivity.this, Music_List.class);
startActivity(intent);
}
});
}
主界面activity_main.xml
有一个按钮id="@+id/main_circle_button
,点击跳转后到达music_list.xml
音乐文件界面。
主界面截图如下:
Android 学习
五级架构
1、系统程序
2、JAVA API框架: 提供标准的 Java API,使
App 能调用 Android 提供的资源,版本升级主要是框架层。
3、原生C/C++库与Android运行时:html库:webkit;加密库:OpenSSL;图形库:OpenGL;数据库:SQLite。许多核心Android系统组件和服务(例如ART和HAT)构建自原生代码,依赖于原生库。通过框架层调用。ART(Android虚拟机)依靠Linux内核来执行底层功能线程和底层内存管理,使用Linux内核可以使Android更安全。
4、硬件抽象层(HAL):向更高级别的JAVA API提供标准硬件功能界面,包含多个库模块。当访问设备硬件时,Android系统加载该硬件的驱动模块。
5、Linux内核
开发环境
开发环境包括:IDE+SDK。IDE是基于JetBrain公司的IntelliJ IDEA,SDK是Android工具箱,包括每个版本的平台、工具、示例、文档等。Android Stusio是Google唯一支持的官方开发工具。
Android开发采用Java和XML混合编程,Layout使用XML定义APP的外观,Activity使用JAVA定义App的行为。
App的工作流程
1、打开App,系统新建Activity对象;2、该Activity对象读入对应的layout;3、系统按Activity要求在屏幕显示layout。
与JAVA区别:没有main函数,只能写特定的生命周期函数。
App的运行
1、编译Java源文件为字节码(.java文件编译为DEX字节码);2、打包字节码文件、库文件和资源文件生成APK安装包;3、启动模拟器;4、部署APK至模拟器;5、运行APK(启动App的入口Activity)。
Activity活动
活动代表了一个具有用户界面的单一屏幕,如Java的窗口或者帧。Android 的活动是 ContextThemeWrapper 类的子类。Android 系统初始化它的程序是通过活动中的 onCreate() 回调的调用开始的。存在有一序列的回调方法来启动一个活动,同时有一序列的方法来关闭活动。
onCreate():这是第一个回调,在活动第一次创建时调用。
一个应用程序可以有1个或多个活动,而没有任何限制。
Intent
每一个Acticity的任务不一样,经常互在各个Activity之间进行跳转,在Android中这个动作是靠Intent来完成的。通过startActivity()方法发送一个Intent给系统,系统会根据Intent找到对应的Activity,即使这个Activity在其他的应用程序中,也可以用这种方法启动它。
Intent存在显式的和隐式的。显示的Intent为已经知道将启动的组件名称,可以精确启动某个组件。隐式的Intent相反,不知道启动的组件名称,一般用在不同应用之间传递消息。系统会根据manifest file中的intent filter找匹配的组件,如果你发送的Intent匹配到一个intent filter,系统会把你的Intent传递给该filter对应的组件(Activity、Service等),并且启动它。如果找到多个匹配的intent filter对应的应用程序,则会弹出一个对话框让你选择哪个应用程序接受你的Intent。