SDKのプログラミングの基礎

、Androidの概要:

       アンディ・ルービンによって開発、

  一般的なモバイル版:コロンビア・ヴァレー:ネクサス、Huawei社:EMUI、Meizuの:Flyme

  Adnroidは、無料のオープンソースアプリケーションのほとんどは、権限の制御ユーザーの機密情報を通じて容易に入手できるJava仮想マシン(JVM)上で実行されています。

二、Androidのフレームワーク:

 

       Androidの仮想マシンのDalvikとJVM差(著作権の問題開発のDalvik):

Dalvik

JVM

デックスファイルが特定されます

JARパッケージは、クラス(圧縮された複数のクラス)が同定され

アーキテクチャは、レジスタに基づいています

アーキテクチャは、スタックに基づいています

       アンドロイドARTモード(4.4現れるので):DEXネイティブマシンコードにファイルを変換するためのアプリケーションをインストールするときに存在します

第三に、開発環境:

       SDKディレクトリ

 

adbのシェルを入力します。

 

AndroidのスタジオAPK 2種類のモード:

  • 1。デバッグ(デフォルト署名する:debug.keystore)
  • 2.Release

四、SDKの基礎:

       1。ビューコントロール(ビュー):使用するXMLレイアウトファイルは、インターフェイスを定義します。UIコンポーネントのほとんどはandroid.widgetパッケージとそのサブパッケージを配置しています。

リソースファイルの概要      

  2。レイアウトの説明:

         1。リニアレイアウトのLinearLayout

         2。相対レイアウトRelativeLayout

         3。フレームレイアウトでframeLayout

         4。表のレイアウトTableLayout

         5。グリッドレイアウトGridLayoutの

         6。絶対レイアウトAbsoluteLayout

  3。TextViewとのEditText

         TextView:のEditTextとButtonビューから継承は、テキスト情報のみを表示することができ、二つの成分の親であります

         EditText:ユーザーがテキストを編集することができます

  4。ImageViewの:ディスプレイの写真

  5.Button和のImageButton

ボタン

ImageButton

ボタンのクリックイベント

テキスト属性があります。

そこsrc属性

あなたは、テキストを設定することができます

あなたは絵を設定することができます

  6。ラジオボタンラジオボタン

     

    

  7。Spinner

    1。静态方式

                在values文件夹下生成数组数据

      

      在layout文件下的main.xml文件中

    效果

    2。动态方式,使用配适器添加数据

  8。AutoCompleteTextView

  9。Toast:短暂消息提示,不打断用户操作

         特点:无法被操作,显示后会自动消失,无需用户操作

                  大部分只显示文本字符串,只用两种属性

                       Toast.LENGTH_SHORT  2秒

                       Toast.LENGTH_LONG   3.5秒

         自定义Toast步骤:

                1。通过构造函数建立Toast实例

                2。调用setView,指示Toast显示内容

                3。调用setGravity,设定显示位置

                4。调用setDuration,设定显示时间

                5。调用show()显示

 

  10。Dialog对话框:

                     a.提供原界面没有空间呈现的内容     eg:音量设置

                     b.提示进一步确认信息

              常用对话框:

      ProgressDialog:进度对话框    

                     DatePickerDialog:日期选择对话框        

                     TimePickerDialog:时间选择对话框

      AlertDialog:风格与界面一致,三部分组成:标题、内容、按钮。使用Builder类构建

             三个组成部分:

            1。标题(setTitle()方法)

            2。内容(setMessage()方法)

            3。按钮(setButton()方法

                setPositiveButton()方法

                setNegativeButton()方法等)

           使用Builder类构建最简单,提供了一系列的方法配置AlertDialog

    

    在调用builder调用show()方法前,仍然可对Dialog做其他设置

        1。Dialog主体是List回调接口

     

                       2。Dialog主体是CheckBox回调接口

                    

                       3。Dialog主体是RadioButton回调接口

       

                       4。完全自定义Dialog内容

       

 

  11。复杂控件:

              ListView:最广泛的数据显示控件

                     常用属性

属性名

说明

divider

设置分割线的颜色

dividerHeight

设置分割线的高度

Scrollbars

设置滚动条的隐藏或显示

Fadescrollbars

设置滚动条的自动隐藏或显示

Entries

引用一个将使用ListView的数组。

若静态数组,使用此属性比在程序中写入更为简单

              ListView的使用:

               第一种:一般

                     1。在布局文件中编写代码(添加标签) 

                     2。Activity中       

                            a。获取ListView对象

                            b。准备数据源

                            c。配置配适器

                            d。将配适器关联到ListView中

               第二种:使用ArrayAdapter实现文字列表

                     1。布局文件编写代码

                     2。Xml文件中添加ListView标签

                     3。Activity中编写代码

                            a。获取ListView对象

                            b。准备数据源(Array数组)

                            c。配置配适器

                            d。将配适器关联到ListView中

                    

    配适器(Adapter):一个接口,派生了ListAdapter(提供列表)和SpinnerAdapter(提供列表选项)两个字接口

    配适器是数据和视图的桥梁,负责把数据所提供的内容显示到视图所定义的外观。

    1。配适器种类

属性名

说明

ArrayAdapter

适用于简单的文字列表

SimpleAdapter

适用于简单的图文混搭列表

SimpleCursorAdapter

适用于数据源是数据库的列表

自定义Adapter(继承BaseAdapter)

适用于绝大多数情况

 

         12。Activity之间的数据传递:意图

        意图Intent:Android三个重要组件Activity、Service、Broadcast Receiver(广播),都依靠Intent启动和数据交换。

      Intent分两类:

        1。显示意图:明确指出组件名称的Intent,可以调用setComponent或setClass指定

      源码:

                     

      Eg:启动第二个页面

      

        2。隐式意图:没有明确的组件名称,必须包含足够的属性信息,需要在清单文件activity中添加<intent-filter>标签并且在内添加Action,Data,Category。由Android系统帮助寻找Intent请求相匹配的组件

      清单文件中,在<application     </activity>之间,配置隐式Intent

        

Action字符串

描述

ACTION_MAIN

主程序入口,不会接收数据,结束后不返回数据

ACTION_EDIT

打开编辑Data里指定数据相对应的应用程序

ACTION_CALL

拨打Data里面指定的电话号码

ACTION_DIAL

启动系统拨号程序或其他拨号程序,显示Data里号码

              Data数据属性:描述Intent要操作的数据URI和数据类型

              Extra额外属性:使用Intent连接不同的组件时,附加额外信息,传递数据

              Category类别:对被请求组件的额外描述信息。

                     Intent类中的常量字符串

Category字符串

描述

CATEGORY_BROWSABLE

目标Activity能够在浏览器中点击链接激活

CATEGORY_HOME

手机开机后显示Activity,或按下Home键显示界面

CATEGORY_LAUNCHER

应用程序最先被执行的Activity

CATEGORY_PREFERENCE

偏好设置的Activity

        

        注意:一条<intent-filter>元素至少包含一个<action>,否则任何Intent请求都不能和该<intent-filter>匹配

 

      Intent的数据传输:

      Activity之间的数据传递步骤

                  显示:

                         1。创建新的Activity

                         2。启动Activity

                         3。启动之前传递数据,启动时接收数据

                         4。将数据封装到Intent对象中传递

                         5。将数据封装到Bundle对象中传递

                            隐式:通过设置<action>标签

                                   1。匹配<intent-filter>中的Action

                                   2。接收隐式intent必须要在intent过滤器中包含  “android.intent.category.DEFAULT"

                                   3。用Uri来做data

                                   4。附加信息extras

                Intent数据返回

                       onSaveInstanceState()确保活动被销毁前调用,保存关键数据

                            1。以startActivityForResult()方式启动

                            2。在新界面使用setResult()返回

                            3。上一个活动中重写onActivityResult()

    

    Activity四大组件:

      Activity生命周期:

        1。返回栈:Android活动可以叠加,新的Activity可以覆盖原活动,返回销毁最上面的Activity,下面的Activity重新活动。

          

      Activity四种活动状态:

             运行状态:Activity在返回栈顶,系统不会回收活动

             暂停状态:Activity不在栈顶,但可见

             停止状态:Activity不在栈顶,不可见,系统会保存相关状态,但需要内存时,会进行回收

             销毁状态:Activity离开返回栈,系统优先回收

      Activity生命周期:

           

        Activity四种启动模式:android:launchMode=" "

           

          1。standared模式(默认):

                           每当启动一个新的活动,就在返回栈中入栈,并处于栈顶,不检查栈顶。

                    2。singleTop模式(解决栈顶重复问题)

            启动前检测栈顶,如果存在该活动,直接使用,如果不为于栈顶,仍然创建新的活动对象

                    3。singleTask模式

                           启动前检测整个返回栈,存在直接使用并将该活动之上的所有活动出栈。

                    4。singleInstance模式(实现其他程序共享这个活动的实例)

                           创建一个新栈来管理活动

       Activity响应事件机制:每个View都有自己的回调方法,常用的回调方法:onKeyDown、onKeyUp、onTouchEvent、onTrackballEvent、onFocusChanged

                      1。基于回调机制

                      2。基于监听机制

 

     广播:

      广播接收者BroadcastReceiver:类似windows的消息钩子,全局监视器,实现组件间通信。

      全局广播:广播可以被任何应用程序收到

                       广播类型:

            有序广播(类似串联):通过sendOrderedBroadcast()发送广播,adortBroadcast()截断广播

                                无序广播(类似并联)标准广播:完全异步执行,通过sendBroadcast()发送

                本地广播:只能在本应用程序接收,只能代码注册不能静态注册

                        使用方式:

                                 LocalBroadcastManager管理广播

                                 LocalBroadcastManager.getInstance()获得实例

                                 xx.registerReceiver()注册广播

                                 xx.sendBroadcast()发送广播

                                xx.unregisterReceiver()取消注册 

 

                广播的注册

                         静态注册

       

                         动态注册

      

 

        服务:

              特点:1。后台运行

                       2。没有界面

                       3。无法自己启动    

                       4。单例模式

              生命周期

       一个service的onStartCommand可能重复调用多次

              两种启动方式:

                     1。startService:启动的服务所在的进程属于服务进程,Activity一旦启动服务,就与Activity无关

                     2。binService:启动的服务所在的进程不属于服务进程,Activity与服务建立连接,Activity退出服务也退出

 

       Android网络接口

              使用的网络协议:HTTP,HTTPS,TCP/IP,SOCKET

              网络接口:

                     Java.net

                     Org.apache接口

                     Android.net

              两种网络架构:

                     B/S模式:浏览器/服务端,应用层HTTP协议通讯,不需要特定客户端软件

                     C/S模式:客户端/服务器,任意网络协议,特定客户端

              服务端返回内容的方式:

                     HTML代码形式返回

                     XML字符串形式返回

                     Json对象方式返回

 

   Android多线程:主线程不能进行耗时操作否则会报异常。anr 阻塞异常

      耗时操作使用子线程操作。只有主线程才可以更新UI。

      runOnUiThread()方法在主线程或子线程都可以更新UI

    handler原理:

    

      handler:用来发送消息和处理消息

           Looper:取消息队列取消息,主线程一创建,Looper就有了

 

    使用步骤:

                1。主线程定义Handler

     

 

                2。使用handler重写handler里面的bandlemessage()方法

     

                3。在主线程创建hanndler子线程发消息

     

                4。handlermessage方法里更新UI

     

 

おすすめ

転載: www.cnblogs.com/heixiang/p/10962343.html