安卓笔记


了解Android


[1] Android的系统架构
[2]Android已发布的版本
[3]Android应用开发的特色

一:Android大致可以分为四层架构: Linux 内核层、系统运行库层、应用框架层和应用层。

  1. Linux内核层.
    Android系统是基于Linux内核的,这一层为Android 设备的各种硬件提供 了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi 驱动、电源管理等。

2.系统运行库层
这一层通过一-些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL[ES 库提供了3D绘图的支持,Webkit 库提供了浏览器内核的支持等。
同样在这- -层还有Android 运行时库,它主要提供了一-些核心库,能够允许开发者使用Java语言来编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机( 5.0系统之后改为ART运行环境),它使得每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik虚拟机实例。相较于Java 虚拟机,Dalvik 是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况做了优化处理。

3.应用框架层
这一层主要提供了构建应用程序时可能用到的各API,Android 自带的一-些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序。

4.应用层
所有安装在手机上的应用程序都是属于这一层的, 比如系统自带的联系人、短信等程序,或者是你从Google Play.上下载的小游戏,当然还包括你自己开发的程序。

二Android已发布的版本
在这里插入图片描述
在这里插入图片描述
三:Android应用开发的特色
1.四大组件
Android系统四大组件分别是活动( Activity)、 服务(Service)、广播接收器( Broadcast Receiver )和内容提供器( Content Provider )。其中活动是所有Android应用程序的门面,凡是在应用中你看得到的东西,都是放在活动中的。而服务就比较低调了,你无法看到它,但它会一直在后台默默地运行,即使用户退出了应用,服务仍然是可以继续运行的。广播接收器允许你的应用接收来自各处的广播消息,比如电话、短信等,当然你的应用同样也可以向外发出广播消息。内容提供器则为应用程序之间共享数据提供了可能,比如你想要读取系统电话簿中的联系人,就需要通过内容提供器来实现。

2.丰富的系统控件
Android系统为开发者提供了丰富的系统控件,使得我们可以很轻松地编写出漂亮的界面。当然如果你品位比较高,不满足于系统自带的控件效果,也完全可以定制属于自己的控件。

  1. SQLite数据库
    Android系统还自带了这种轻量级、运算速度极快的嵌人式关系型数据库。它不仅支持标准的SQL语法,还可以通Android封装好的API进行操作,让存储和读取数据变得非常方便。

4.强大的多媒体
Android系统还提供了丰富的多媒体服务,如音乐、视频、录音、拍照、闹铃,等等,这一切你都可以在程序中通过代码进行控制,让你的应用变得更加丰富多彩。

5.地理位置定位
移动设备和PC相比起来,地理位置定位功能应该可以算是很大的-一个亮点。现在的Android手机都内置有GPS,走到哪儿都可以定位到自己的位置,发挥你的想象就可以做出创意十足的应用,如果再结合功能强大的地图功能,LBS这- -领域潜力无限。


活动的基本用法


由于Android Studio在-一个工作区间内只允许打开一一个项目,因此首先你需要将当前的项目关闭,点击导航File→Close Projecto然后再新建-一个 Android项目,项目名可以作为ActityTest,包名我们就使用默认com.example.activitytest。 新建项目的步骤你已经在上-章学习过了,不过图1.12中的那一步需要稍做修改,我们不再选择Empty Activity 这个选项,而是选择Add NoActivity,因为这次我们准备手动创建活动,如图2.1所示。
在这里插入图片描述
在这里插入图片描述
现在右击com.example.activitytest包→New→Activity →Empty Activity,会弹出一个创建活动的对话框,我们将活动命名为FirstActivity ,并且不要勾选Generate Layout File和Launcher Activity如下图:
在这里插入图片描述
勾选Generate Layout File表示会自动为FirstActivity创建一个对应的布 局文件,勾选LauncherActivity表示会自动将FirstActivity 设置为当前项目的主活动,这里由于你是第一次 手动创建活动,这些自动生成的东西暂时都不要勾选,下面我们将会-一个个手动来完成。勾选BackwardsCompatibility表示会为项目启用向下兼容的模式,这个选项要勾上。点击Finish完成创建。


在活动中使用Toast


首先需要定义一个弹出Toast的触发点,正好界面有这个按钮,那我们就让这个点击按钮时出现Toast。代码如下
protected void onCreate(Bundle savedInstanceState) {
super . onCreate(savedInstanceState);
setContentView(R. layout. first_ layout);
Button button1 = (Button) findViewById(R. id. button 1);
button1. setOnClickListener(new View。OnClickListener() {
@Override
public void onClick(View v) {
Toast . makeText(FirstActivity.this, “You clicked Button 1”,
}
});
}


在活动中使用intent


使用显示intent

仍然还是右击com.example.activitytest包-→New- →Activity-→Empty Activity,会活动的对话框,我们这次将活动命名为SecondActivity, 并勾选Generate Layout件起名为second_ layout, 但不要勾选Launcher Activity选项,如图2.14所示。在这里插入图片描述
点击Finish完成创建, Android Studio会为我们自动生成SecondActivityjava和second_ layout.
xml这两个文件。不过自动生成的布局代码目前对你来说可能有些复杂,这里我们仍然还是使用最
熟悉的LinearL ayout,编辑second layout.xml,将里面的代码替换成如下内容:
<LinearLayout xmIns: android=" http://schemas . android. com/apk/ res/android"
android:orientation=“vertical”
android: layout_ width=“match_ parent ”
android: layout_ height= “match. parent”>
<Button
android:id=”@+id/button_ 2"
android: layout_ width=" match_ parent’
android: layout_ height=“wrap_ content "
android:text=“Button 2”
/>

我们还是定义了一个按钮,按钮上显示Button 2。
然后SecondActivity中的代码已经自动生成了-部分,我们保持默认不变就好,如下所示:
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super . onCreate(savedInstanceState);
setContentView(R. layout. second_ layout) ;
}
另外不要忘记,任何-一个活动都是需要在AndroidManifest.xml 中注册的,不过幸运的是,
Android Studio已经帮我们自动完成了,你可以打开AndroidManifest.xml瞧- -瞧:
<application
android: allowBackup=“true”
android: icon=”@mipmap/ic_ launcher"
android: label="@string/app_ name "
android: supportsRtl=“true
android: theme=”@style/AppTheme">








Intent有多个构造函数的重载,其中-一个是Intent (Context packageContext, Class<?>
cls)。这个构造函数接收两个参数,第-一个参数Context要求提供- - 个启动活动的上下文,第
二个参数Class则是指定想要启动的目标活动,通过这个构造兩数就可以构建出Intent的“意
图"。然后我们应该怎么使用这个Intent 呢? Activity 类中提供了一一个startActivity()方法,这
个方法是专门用于启动活动的,它接收一个Intent 参数,这里我们将构建好的Intent 传入
startActivity()方法就可以启动目标活动了。
修改FirstActivity中按钮的点击事件,代码如下所示:
button1. set0nClickListener(new View. 0nClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(FirstActivity . this, SecondActivity . class);
startActivity(intent);
});
我们首先构建出了一个Intent, 传入FirstActivity. this作为上下文,传入Second-
Activity.class作为目标活动,这样我们的“意图”就非常明显了,即在FirstActivity 这个活
动的基础上打开SecondActivity这个活动。然后通过startActivity( )方法来执行这个Intent。
重新运行程序,在FirstActivity的界面点击一下按钮, 结果如图2.15所示。
@Override
protected void onCreate(Bundle savedInstanceState) {
super . onCreate(savedInstanceState);
setContentView(R. layout. second_ layout) ;
}
另外不要忘记,任何-一个活动都是需要在AndroidManifest.xml 中注册的,不过幸运的是,
Android Studio已经帮我们自动完成了,你可以打开AndroidManifest.xml瞧- -瞧:
<application
android: allowBackup=“true”
android: icon="@mipmap/ic_ launcher"
android: label="@string/app_ name "
android: supportsRtl=“true
android: theme=”@style/AppTheme">








结果如下在这里插入图片描述

隐式intent

相比于显式Intent,隐式Intent则含蓄了许多,它并不明确指出我们想要启动哪-个活动,
而是指定了一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,
并帮我们找出合适的活动去启动。
什么叫作合适的活动呢?简单来说就是可以响应我们这个隐式Intent的活动,那么目前
SecondActivity可以响应什么样的隐式Intent 呢?额,现在好像还什么都响应不了,不过很快就
会有了。
通过在标签下配置<intent . filter>的内容,可以指定当前活动能够响应的
action和category,打开AndroidManifest.xml,添加如下代码:



<category android: name="android . intent . category . DEFAULT”1>


在标签中我们指明了当前活动可以响应com. example . activitytest . ACTION_
START这个action,而标签 则包含了- -些附加信息,更精确地指明了当前的活动能
够响应的Intent中还可能带有的category。只有和中的内容同时能够匹配
上Intent中指定的action和category时,这个活动才能响应该Intent。
修改FirstActivity中按钮的点击事件,代码如下所示:
button1. setOnClickListener(new View. OnClickListener() {
@0verride
public void onCLick(View v) {
Intent intent = new Intent(“com. example. activitytest .ACTION_ START”);
startActivity(intent);
});


线性布局


在这里插入图片描述
LinearLayout又称作线性布局,是- -种非常常用的布局。正如它的名字所描述的一样,这个
布局会将它所包含的控件在线性方向上依次排列。相信你之前也已经注意到了,我们在上一节中
学习控件用法时,所有的控件就都是放在LinearLayout布局里的,因此上一节中的控件也确实是
在垂直方向上线性排列的。
3.3详解4种基本布局
95
的呢?这是由于我们通过android:orientation属性指定了排列方向是vertical,如果指定的是
horizontal,控件就会在水平方向上排列了。下面我们通过实战来体会一下, 修改activity main.xml
中的代码,如下所示:
<LinearLayout xmIns: android=" http://schemas . android . com/apk/ res/ android"
android; orientation= “vertical”
android: layout
width=“match_ parent”
android: layout_ height=" match_ parent">
<Button
androld: 1d="@+ 1d/button1"
android; layout, width= “wrap_ content”
android; layout_ height= " wrap content"
android:text= “Button 1” 1>
<Button
androld: 1d="@+1d/button2"
androld:layout widthe"wrap_ content "
andro1d:’ layout. height “wrap content”
android:textu “Button 2” 1>
<Button
androld: 1d="@+1d/button3"
andro1d:layout. width= “wrap_ content”
androld; Layout height=“wrap_ content”
android:textu"Button 3" 1>

结果:在这里插入图片描述

Android笔记系统是一种可以帮助用户记录、整理和分享笔记的应用程序。以下是一些常见的Android笔记系统的特点和功能: 1. 笔记编辑:大多数Android笔记系统都提供了基本的文本编辑功能,用户可以输入、编辑和保存笔记。一些系统还允许用户插入图片、附件和链接等元素,以丰富笔记内容。 2. 分类和标签:许多Android笔记系统允许用户将笔记进行分类和标签,以便更好地组织和查找。这有助于用户根据主题、日期或其他标准将笔记分组,以便快速找到所需的资料。 3. 笔记共享:一些Android笔记系统允许用户将笔记分享到社交媒体平台或与其他人共享。用户可以选择将笔记以链接、邮件或其他形式发送给朋友或同事,以便他们能够方便地查看和评论笔记。 4. 搜索功能:许多Android笔记系统提供强大的搜索功能,用户可以根据关键词、标签或分类快速找到所需的笔记。 5. 提醒和日历集成:一些Android笔记系统与日历应用程序集成,允许用户设置提醒,以便在特定日期或时间提醒用户查看或更新笔记。 6. 云同步:大多数Android笔记系统都支持云同步功能,用户可以将笔记存储在云端,并在多个设备上访问。这有助于用户在不同设备之间同步笔记,并确保数据的安全性和可访问性。 7. 多平台支持:一些Android笔记系统还支持在多个平台上使用,包括iOS、Windows和Mac等。这为用户提供了更多的灵活性和选择。 总之,Android笔记系统为用户提供了一个方便、高效的方式来记录、整理和分享笔记。它们提供了各种功能和工具,以帮助用户更好地组织和查找信息,并与其他人共享和协作。选择一个适合自己的Android笔记系统,可以帮助您更有效地管理您的学习、工作或个人笔记
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值