アンドリュースチャート
Androidアプリケーションのコンポーネント
Androidアプリケーションは、コンポーネントの4種類があります。
- アクティビティ(活動):ビジュアルユーザインターフェース。
- サービス(アクティビティ):実行時間、時間がかかり、オペレータの操作なしユーザーインターフェース。
- 放送受信機(放送):グローバル・リスナーは、システムおよびアプリケーションからの放送を受信します。
- コンテンツプロバイダ(コンテンツプロバイダ):共有永続的なデータストレージ機構と、
アクティビティ
タスクを完了するためにユーザと対話することができ、視覚ユーザ・インタフェース・コンポーネントを提供するための活動。
一般的な方法
方法 | 機能説明 |
---|---|
setContentView(int型layoutResID) | 活動の設定インタフェースのレイアウト |
onCreate(バンドルsavedInstanceState) | 呼び出しは、あなたが最初のアクティビティを作成するとき、あなたはここで呼び出す必要がありsetContentView() 活動インターフェースのレイアウトを定義します。 |
ONSTART() | あなたが活動を呼び出す起動すると通話が終了した後、活動は「開始」の状態を入力して、ユーザーに表示されます。このコールバックは、アクティビティがユーザーとの対話の前に最終的な準備のためのフロントに入る含まれています。 |
onStop() | ユーザーはもはや表示されているときに活動、アクティビティの呼び出しを停止、システムが呼び出されますonStop() 。この理由は、活動は、新たな活動を開始したり、既存の活動は、「復元」状態とカバーが活動を停止して入って、破壊されることができます。これらすべてのケースでは、完全に停止活動は表示されなくなります。次のコールバックシステムコールになりますonRestart() (アクティビティの再利用者の対話の場合)またはonDestroy() (活性が完全に終了した場合)。 |
onDestroy() | 销毁Activity时调用,此回调是 Activity 接收的最后一个回调。通常,实现 onDestroy() 是为了确保在销毁 Activity 或包含该 Activity 的进程时释放该 Activity 的所有资源。 |
onRestart() | Activity由停止状态恢复时调用,onRestart() 会从 Activity 停止时的状态恢复 Activity。此回调后面总是跟着 onStart() 。 |
onResume() | Activity由暂停状态恢复时调用,此时,该 Activity 位于 Activity 堆栈的顶部,并会捕获所有用户输入。应用的大部分核心功能都是在 onResume() 方法中实现的。onResume() 回调后面总是跟着 onPause() 回调。 |
onPause() | 当 Activity 失去焦点并进入“已暂停”状态时,系统就会调用 onPause() 。当系统为您的 Activity 调用 onPause() 时,从技术上来说,这意味着您的 Activity 仍然部分可见,但大多数情况下,这表明用户正在离开该 Activity,该 Activity 很快将进入“已停止”或“已恢复”状态。如果用户希望界面继续更新,则处于“已暂停”状态的 Activity 也可以继续更新界面。onPause() 执行完毕后,下一个回调为 onStop() 或 onResume() ,具体取决于 Activity 进入“已暂停”状态后发生的情况。 |
setResult(int resultCode) | 返回数据给上一个Activity |
setResult(int resultCode, Intent data) | 范湖即将数据给上一个Activity |
startActivityForResult(Intent intent, int requestCode) | 携带数据并跳转至指定Activity |
startActivityForResult(Intent intent, int requestCode, Bundle options) | 携带数据跳转至指定Activity |
finish() | 结束当前Activity |
Activity状态转换
Activity的声明
除了要在Java代码中新建一个继承于Activity或者其他Activity的类,还要在mainfest清单中添加Activity的声明。
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
XML资源文件
Android的资源可分为两大类:
- 原生资源:无法通过由R类进行索引的原生资源;
- 索引资源:通过R类进行自动索引的资源;
资源访问的方式:
- Java代码访问资源:
- 在XML文件中访问资源
目录结构
访问res资源
Java代码访问res下的资源:
R.resourceType.resourceName;
通过Resources类提供的接口访问;
访问assets原生资源
Java代码中通过AssetManager类访问assets原生资源;
通过Resources类提供的getAssets()接口获取AssetManager对象,在通过其接口来获取资源:
getResources().getAssets().open("xxxx");
在XML中使用资源
@[packageName:]resourceType/resourceName
Android常用的定义资源的XML文件有四种:
- strings.xml:用于定义文本内容的资源文件;
- colors.xml:用于定义颜色设置的资源文件;
- dimens.xml:用于定义尺寸的资源文件;
- styles.xml:用于定义主题和样式的资源文件;
文本资源文件
strings.xml文本资源文件
<resources>
<string name="app_name">My Application</string>
</resources>
Java代码中访问字符串
String appName = getString(R.String.app_name);
XML文件中访问字符串资源
@string/app_name
颜色设置资源文件
colors.xml颜色资源文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
</resources>
颜色值的声明有以下四种方式:
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
语法
<color name="color_name">#color_value</color>
Java代码中访问颜色
int color = getColor(R.color.colorAccent);
XML文件中访问颜色资源文件
@color/color_name
AndroidMainfest.xml清单文件
清单文件中通常包含以下六项信息:
- 声明应用程序的包名;
- 描述应用程序组件;
- 确定宿主应用程序进程;
- 声明应用程序拥有的权限;
- 定义应用程序所支持API的最低等级;
- 列举应用程序必须链接的库;
设置清单文件的属性时,需要遵守几项规则:
- 要素:だけと必要であり、唯一のすべての要素に一度発生する可能性があります。
- プロパティ:ほとんどの属性要素はオプションですが、設定されなければならないいくつかの属性があります。
- クラス名が定義されています:SDKでのクラス名に対応するすべての要素名を、
- マルチ数値条件:エレメントは、複数の繰り返しのようにして、数値の用語を複数有する記載要素のプロパティでなければならない値、および属性で記述することができないワンタイムの複数の値を有する場合、
- リソースアイテム説明:あなたは「:タイプ@ [のpackageName]:名前」を使用して、リソースを参照する必要があり、参照形式を。
- 文字列値:他の言語と同様に、
システム権限を取得します。
<uses-permission android:name="android.permission.xxxx" />
要素宣言を使用するためのカスタム権限:
<permission
android:label="权限名称"
android:description="@string/descriptionType"
android:protectionLevel="levelName"
android:icon="@drawable/icoResName"
android:name="PackageName"></permission>
権限レベルの説明:
- normal--低リスクの特権
- dangerous--高リスクの権限
- signature--署名権限
- signatureOrSystem--署名やシステム権限
アンドロイド5つの優先順位に分割降順ですべてのプロセスの重要度に応じて、アプリケーション・コンポーネント及びそれらのアセンブリの現在の運転状態に基づいて:
- フォアグラウンドプロセス;
- 可視プロセス;
- サービスプロセス。
- バックグラウンドプロセス。
- 空のプロセス;
応用
Applicationクラスを拡張することによって、あなたは3つのことを行うことができます。
- Androidのランタイムのアプリケーションレベルの時間放送への対応。
- アプリケーションコンポーネント間のオブジェクトを渡します。
- リソース管理と使用される複数のアプリケーション・コンポーネントを維持します。
アプリケーションクラスの作成およびアプリケーションの終了は、低い使用可能なメモリを変更して、処理時間の設定は、インターフェイスを提供します。
- onCreate()
- onLowMemory()
- onTrimMemory()
- onConfigurationChanged()
インターネットからの侵略削除画像...