Android基本认识

时间:2022-08-08 15:12:50

AndroidManifest.xml file missing!

是因为开始想当然的用中文当project名

no launcher activity found

第一次运行出了点问题,no launcher activity found,谷歌了一下,在manifest里加上如下就可以

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

目录文件详解

res目录存放资源文件,比如layout存放界面布局文件

src目录存放java源文件

lib目录存放库类

AndroidManifest.xml文件为系统清单文件,用于控制app 的名称、图标、访问权限等整体属性,Activity Service ContentProvider BroadcastRecevier四大组件也是在这里配置

aapt(Android asset Packaging Tool)根据AndroidManifest.xml和res资源打包成apk

R.java是aapt根据res生成的一个java文件,每类资源对应R.java的一个内部类,具体的资源会在相应的内部类里生成一个静态常量.将在页面布局交互设计时使用的资源自动生成对应的变量,在业务代码和xml文件里可以引用相应的变量

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.helloworld"
android:versionCode="1"
android:versionName="1.0" android:installLocation="auto">
<!-- 应用程序的包名是此应用的唯一标识 -->
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="19" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- 指定应用的标签和图标 -->
<activity
android:name="com.example.helloworld.HelloWorldActivity"
android:label="@string/title_activity_hello_world" >
<intent-filter>
<!-- 指定此Activity为程序的入口 -->
<action android:name="android.intent.action.MAIN" />
<!-- 指定加载该应用时运行此Activity -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>

基本组件介绍

  1. Activity 是负责与用户进行交互的组件,但需要通过setContentView(View)来显示指定组件,也可接受一个布局管理资源的ID作为参数(xml文件),如果需要多个用户界面,多个Activity组成Activity栈。Activity包含了一个setTheme()方法来设置窗口风格,如果希望不显示ActionBar或者以对话框形式来显示窗口,都可以在这里实现
  2. Sevice类似于后台线程
  3. BroadcastReceiver类似于监听器,但监听的是Activity组件
  4. ContentProvider实现Android应用之间数据交换
  5. Intent 实现不同组件之间通信

发布APK需要数字签名,区分不同发布者。

界面编程

view组件控制布局

提供xml文件和java代码方式来控制界面

其中Drawable是一个特别的抽象基类,可以用来绘制图形

ViewGroup常作容器类

在代码中创建UI组件需要传入一个Context参数,Context代表访问Android应用环境的全局信息,Activity和Service都继承了Context,传入this就行

 platforms:该目录下存放不同版本的Android系统

tools:该目录下存放了大量的Android开发、调试工具