Android菜鸟教程笔记

  由于刚入门Android教程,首先就下载配置了两天,各种草泥马。。。先是被墙,各种配置错误,然后还给我来个gradle版本不对,下载gradle-4.4-all花了老半天,最后还是从别人的网盘下载的。学习资料不多,下面是我在菜鸟教程一字一字敲的,加强了一下理解吗。虽说还是菜鸟都不如的。毕竟花了老半天...

MainActivity
onCreate (Bundle instance)
Bundle : final 类 一种字符串到变量的映射
放入键值对的形式,另一个Activity来取数据的时候;
通过key取值
bundle.putString("key","values");
它是一个简单的数据携带包,该对象也包含了多个方法来存入数据



R--activity_main.xml

Maanifest文件:
无论开发什么组件作为应用程序的一部分,都需要在应用程序
根目录下的Manifest.xml中声明所有的组件,这个文件是Android
操作系统和应用程序之间的接口,因此,如果
没有在这个文件中声明你的组件,将无法被操作系统识别。
android:name属性指定一个Activity类子类的全名,
android:label属性用于指定一个活动,可以使用标签来指定多个活动
意图过滤器:intent-filter

<activity  android:name=".MainActivity" android:label="@string/title_activity_main" > 
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

action被命名为android.intent.action.MAIN,
表明这个活动被用作程序的入口
category 被命名为:android.intent.category.LAUNCHER
表明应用程序可以通过设备启动器的图标来启动。
@String 指的是string.xml,
用于指定不同的Android应用程序组件:
活动元素
服务元素
广播接收元素
内容提供者元素
Strings文件位于res/value文件夹下,
它包含应用程序使用到的所有文本,
R文件:它是活动的java文件如MainActivity.java
的和资源如strings.xml之间的胶水。自动生成。

//
Layout文件:
activity_main.xml是在res/layout目录下的文件
当应用程序构建它的界面时被引用,可以
频繁修改这个文件来改变应用程序的布局。
其中的textview是一个控件,用于构建用户图形界面,
它包含许多不同的属性,诸如android:layout_width, android:layout_height等用来设置它的宽度和高度等。

res/支持的资源:
color/ 定义颜色状态列表的xml文件,保存在res/values/color文件夹下
drawable 图片文件
menu 定义应用程序的xml文件,如选项菜单,上下文菜单,子菜单
被保存在res/menu/文件夹下,通过R.menu类访问
valeus/ 包含简单值,如字符串 整数 颜色等
的xml文件,这里有一些资源命名规范,
arrays.xml代表数组资源,通过R.array类访问,
integers代表整数资源 ,通过R.integer类访问,
bool.xml代表布尔值资源,通过R.bool类访问,
dimens.xml代表维度值,通过R.dimen类访问;
strings.xml代表字符串资源,通过R.string访问;
xml/ 可以通过Resources.getXML()来运行时读取任意的
XML文件,可以在这里保存运行时使用的各种配置文件

替代资源:
你的应用程序需要为特定的设备配置提供替代的资源支持。比如说,
你需要为不同的屏幕分辨率提供替代的图片资源,

以下步骤:
res/创建一个新的目录,以<resource_name>_<confug_qualifier>
的方式命名;这里的resource_name 可以是以上的任意资源,如图片。布局等,

在这个目录下保存响应 的替代资源,这些资源文件必须
与默认生成的资源文件名一致,
然而这些文件将确定的内容进行替代,
示例: http://www.runoob.com/android/android-resources.html
访问资源:
应用程序开发中,需要访问定义好的资源,不论是通过代码还是
xml文件。
当Android应用程序被编译,生成一个R类,其中包含了所有res/目录下资源的id
通过子类+资源名或者直接使用资源ID来访问资源。
访问res/drawable/myimage.png,并将其设置到ImageView上,
//获取定义为myimageview的ImageView
ImageView imgageView = (ImgageView)findViewByid(R.id.myimageview);
//ImageView获取在res/下的drawable子目录下名为myimage的图片
imageView.setImageResource(R.drawable.myimage);
如res/values/strings.xml以下定义:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello, World!</string>
</resources>
现在在ID为msg的TextVIew对象上使用资源ID来设置文本;
TextView msgTextView = (TextVIew)findViewbuId(R.id.msg);
msgText.setText(R.string.hello);

在xml中访问:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="opaque_red">#f00</color>
<string name="hello">Hello!</string>
</resources>


布局文件中可以这样:
android:text = "@String/hello"/>
android:textColor = "@color/opaque_red"


活动(Activity)
活动代表了具有用于界面的单一屏幕:如java的窗口或者帧,Android
的活动是ContextThemeWrapper类的子类:
Android初始化它的程序是通过活动中的onCreate()回调的调用开始的
Activity类定义了下面的回调:
onCreate() 第一个回调,在活动第一次创建时调用
onStart() 这个回调在活动中为用户可见时调用
onResume() 这个回调在应用程序与用户开始可交互的时候调用
onPause() 被暂停的活动无法接受用户输入,不能执行任何代码
当前的活动将要被暂停,上一个活动将要恢复时调用
onStop() 当活动在不可见时调用
onDestory() 当活动被销毁之前调用
onRestart() 当活动被停止以后重新打开是调用

Log.d() 方法用来生成日志信息。
活动类从项目的res/layout中的XML文件中加载所有的UI组件
下面的语句从res/layout/activity_main.xml文件中加载UI组件

setContentView(R.layout.activity_main);
一个应用程序可以有1个或多个活动,而没有任何限制。每个为应用程序所定义的活动都需要在AndroidManifest.xml中声明。

在意图过滤器标签中需要包含MAIN动作和
LAUNCHER类别


服务(service)
服务是一个后台运行的组件,执行长时间元素且不需要用户交互的
任务,应用被销毁也依然可以存在
基本包含两种状态
Started: 组件,如活动,通过startService()启动了服务,则服务
是Start状态,服务可以在后天无限期运行,即使启动它的组件已经被销毁。

Bound
当Android的应用程序组件通过bindService()绑定了
服务,则服务是Bound状态,它提供了
一个客户服务器接口允许组件和服务进行交互,如
发送请求,获取结果,甚至通过IPC来进行跨进程通信。

服务拥有生命周期方法,可以实现监控服务状态的变化,
可以在合适的阶段执行工作。
onCreate=>onStart()=>running=>onDestroy

要创建服务,需要创建一个继承Service基类
或者它们的已知子类的java类,
基类定义了不同的回调方法和多数重要方法。
回调方法如下:
onStartCommand()
onBind()
onUnbind()
onCreate() 当服务通过onStartCommand()
和onBind()被第一次创建的时候,系统调用该方法,
要求一次性安装。
onDestory() 当服务不在有用或被销毁时,系统调用该方法,
你的服务需要实现该方法来清理任何资源,如线程,已注册
的监听器,接收器。

public class HelloService extends Service{
int mstartMode(); 、、标识服务被杀死之后的行为
IBinder mbinder; //绑定的客户端接口
//通过bindService()绑定到服务的客户端
public IBinder onBind(Intent intent){
return mBinder;
}
}

广播接收器(Broadcast Receivers)
用于响应来自其他应用程序或者系统的
广播消息。这些消息有时被称为
事件或者意图,应用程序可以初始化广播来让其他的
应用程序知道一些数据已经被下载到设备,
使系统的广播意图配合广播接收器工作:
1.创建广播接收器
2.注册广播接收器

public class MyReceiver extend BroadcastReceiver{
public void onReceive(Context context,Intent intent){
Toast.makeText(context, "Intent Detected.", Toast.LENGTH_LONG).show();
}
}

应用程序通过AndroidManifest.xml中注册广播接收器类监听
制定的广播意图,假设我们将要注册MyReceiver来
监听系统产生的ACTION_BOOT_COMPLETED事件,


Android 碎片(Fragment)
活动的一部分,是活动更加模块化的设计,
碎片拥有自己的布局,自己的行为以及自己的生命周期回调
活动正在运行的时候,可以在活动中添加或者移除碎片
可以合并多个碎片在一个单一的活动中来构建多栏的UI

碎片可以被用在多个活动中。
碎片的生命周期和它的宿主活动紧密相连,活动被暂停,
碎片也别停止
碎片可以实现行为而没有用户界面
API版本11加入的

方式:
继承Fragment类来创建,可以通过使用元素在活动中的布局文件
声明碎片来在你的活动中插入碎片。
在引入碎片之前,由于每次给定的一个事件点在屏幕上只能显示
单一的活动,因此我们有一个局限。我们无法分割设备屏幕并且独立的控制不同的部分。伴随着碎片的引入,我们获得了更大的灵活性,并使得一个时间点只能在屏幕上有一个单一活动的限制被移除。现在我们可以有单一的活动,但每个活动由多个碎片组装,每个碎片有自己的布局,
事件和完整的生命周期。


Android内容提供者(Content Provider)
内容提供者组件通过请求从一个应用程序向其他的应用程序提供数据。
这些请求由类ContentResolver的方法类处理,内容提供者可以使用
不同的方式类存储数据,可以存在数据库,文件,或者网络
内容提供者可以让内容集中,必要时可以有多个应用程序来访问。
和数据库很像,一般存储在SQLite数据库。
内容提供者被实现为类:ContentProvider类的子类

创建内容提供者:
首先,需要继承ContentProviderbase来创建诡异而内容提供者
其次,需要定义用于访问内容的url地址
创建数据库保存内容,在框架中重写
onCreate()方法来使用SQLiteOpenHelper的方法
创建或者打开提供者的数据库,应用程序启动,它的每个内容提供者的 onCreate() 方法将在应用程序主线程中被调用。

随后在补充吧。


好好生活,天天向上
原文地址:https://www.cnblogs.com/linchongatfirst/p/9527283.html