安卓移动开发基础案例教程_安卓移动开发案例基础教程 教案 - CSDN
  • 由传智播客高教产品研发部编著的《Android移动应用基础教程》为Android入门书籍,本书站在初学者的角度,将每个讲解的知识都进行了深入分析,并使用生动形象的情景化举例,将复杂和难以理解的知识进行简单化。...
  • 入门书籍,可以参考学习。ANDROID移动开发基础案例教程
  • 直接去出版社官网下载就好,简单有效,亲自经历,避免踩已踩过的坑

    直接去出版社官网下载就好,简单有效,亲自经历,避免踩已踩过的坑

    展开全文
  • 这个是工业和信息化“十三五”人才培养规划教材Android移动开发基础案例教程,黑马程序员编著配套源代码
  • 参考书目:《Android移动开发基础案例教程》 出版社:中国工信出版集团丨人民邮电出版社 编著:黑马程序员 --------------- 很认真写的期末考试总结,供大家参考! · 移动通信1G、2G、3G、4G的概念、优缺点...

     

    参考书目:《Android移动开发基础案例教程》 

    出版社:中国工信出版集团丨人民邮电出版社

    编著:黑马程序员

    ---------------

    很认真写的期末考试总结,供大家参考!

     

    · 移动通信1G、2G、3G、4G的概念、优缺点

    答:1G是模拟信号,支持语音通话,安全性差,容易被窃听,代表产品:大哥大;2G采用数字信号传输,信号强,支持收发短信,支持小的Java程序,支持数据业务,GPRS工作在2.5GHz,EDGE工作在2.75GHz;3G主要技术有TDSCDMA(中国移动)、WCDMA(中国联通)和CDMA2000(中国电信),HSDPA工作在3.5GHz,提供较快的数据业务;4G是指第四代移动通信技术,主要技术有TD-LTE(中国移动、中国联通、中国电信)和FDD-LTE(中国联通、中国电信),提供更快的数据业务,通过VoLTE技术,支持语音通话在4G频段上进行,提供高清视频、语音通话。

    · Android体系结构由几层构成?分别是哪几层?简单介绍每一层的概念、应用

    答:四层,分别是应用程序层(Applications)、应用程序框架层(Application Framework)、核心类库层(Libraries)以及Linux内核层(Linux Kernel)。应用程序层是应用程序的集合,各种安装在手机上的App都属于这一层;应用程序框架层主要提供了/构建应用程序时/用到的各种API接口,Android自带的一些核心应用就是使用这些API完成的,例如视图(View)、活动管理器(Activity Manager)、通知管理器(Notification Manager)等;核心类库层包含了系统库/及Android运行时库,系统库主要是通过C/C++库来为Android系统提供主要的特性支持,如OpenGL/ES库提供了3D绘图的支持,Android运行时库提供了Dalvik虚拟机(安卓5.0开始彻底更换为ART);Linux内核层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动等。

    · Drawable、Layout、AndroidManifest.xml分别存放什么内容?

    答:src目录是源代码目录,存放的是.java文件;gen目录存放ADT自动生成的java文件;bin目录保存了编译过程中产生的文件,以及最终的apk文件;res是资源目录,其中,drawable目录用来保存同一个程序中针对不同屏幕尺寸需要显示的不同大小的图像文件,layout目录用来保存与用户界面相关的布局文件,values目录保存颜色、风格、主题和字符串等资源;project.properties文件记录了Android工程的相关设置;AndroidManifest.xml是XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包括应用程序名称、icon、包名称、模块组成、授权和SDK最低版本等,而且每个Android程序必须在根目录下包含一个AndroidManifest.xml文件。

    · Android的常用布局有几种?分别简单介绍它们的特点

    答:分别有LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(帧/框架布局)、TableLayout(表格布局)、GridLayout(网格布局)和AbsoluteLayout(绝对布局)六种。线性布局(LinearLayout)主要以水平和垂直方式来显示界面中的控件;相对布局(RelativeLayout)是通过相对定位的方式指定控件位置,后放置的控件依赖于先放置的控件,是Android默认的布局;帧布局(FrameLayout)是Android中最简单的布局,该布局为每个加入其中的控件创建一个空白区域,所有控件都默认显示在屏幕左上角,并按照先后放入的次序重叠排放,先放入的控件显示在最底层,后放入的控件显示在最顶层;表格布局(TableLayout)是以表格形式排列控件的,通过行和列将界面划分为多个单元格,每个单元格都可以添加控件;网格布局(GridLayout)是Android 4.0新支持的布局方式,将用户界面划分为网格,界面元素可随意摆放在这些网格中;绝对布局(AbsoluteLayout)是通过指定x、y坐标来控制每一个控件位置的。

    · TextView和Button的常用属性有哪些?

     

    控件属性

    功能描述

    TextView

    android:text

    设置显示文本

    android:textColor

    设置文本的颜色

    android:textSize

    设置文字大小,推荐单位为sp,如android:textSize = “15sp”

    android:textStyle

    设置文字样式,如bold(粗体),italic(斜体),bolditalic(粗斜体)

    android:height

    设置文本区域的高度,推荐单位为dp

    android:width

    设置文本区域的宽度,推荐单位为dp

    android:maxLength

    设置文本长度,超出不显示,如android:maxLength = “10”

    android:password

    设置文本以密码形式“.”显示

    android:gravity

    设置文本位置,如设置成”center”,文本将居中显示

    android:phoneNumber

    设置以电话号码的方式输入

    android:layout_height

    设置TextView控件的高度

    android:layout_width

    设置TextView控件的宽度

     

    控件属性

    功能描述

    Button

    android:text

    设置显示文本

    android:layout_height

    设置Button控件的高度

    android:layout_width

    设置Button控件的宽度

    android:layout_weight

    设置Button控件的权重

    android:onClick

    点击此控件时调用的方法

    android:drawable

    在Button组件上放置图片

    · Android的四大组件是什么?它们的作用分别是什么?

    答:Activity(界面)为用户提供可视化界面及操作;Service(服务)是一个长期运行在后台的用户组件,适用于开发没有用户界面且长时间在后台运行的应用功能;Content Provider(数据交换/内容提供者)是在不同程序之间实现数据共享;Broadcast Receiver(广播/广播接收者)是监听系统中的广播消息,以实现在不同组件之间的通信。

    · Activity的生命周期有几种状态?有几种方法?什么时候调用这些方法?作用是什么?

    答:Activity的生命周期分为5种状态,分别是启动状态、运行状态、暂停状态、停止状态和销毁状态。启动状态很短暂,一般当Activity启动之后便会进入运行状态;运行状态时Activity处于屏幕最前端,它是可见、有焦点的,可以与用户进行交互;暂停状态是当Activity在界面上被部分遮挡,且不能与用户进行交互,如锁屏;停止状态是当Activity在界面上被完全遮挡,完全不能被用户看到,当系统内存不足时,很容易被销毁;销毁状态时Activity将被kill,清理出内存。

    Activity的生命周期中主要涉及7种方法(事件回调函数),分别是onCreate()、onStart()、onResume、onPause()、onStop()、onDestroy()和onRestart()方法/函数。onCreate()方法是在Activity创建时调用,通常做一些初始化设置;onStart()方法在Activity即将可见时调用;onResume()方法在Activity可以接收用户输入时调用,此时的Activity位于Activity栈的栈顶;onPause()方法在进入暂停状态时被调用,主要用来保存持久数据、关闭动画、释放CPU资源等;onStop()方法在Activity不对用户可见时调用,Activity进入停止状态;onDestroy()方法在Activity销毁时调用;onRestart()方法在Activity从停止状态进入活动状态前调用。

    · Activity之间的跳转需要用到(       )组件,根据开启目标组件的方式不同,Intent被分为哪两种类型?简单介绍这两种类型

    答:Activity之间的跳转需要用到Intent组件,Intent是一种轻量级的消息传递机制,可以在同一个应用程序内部的不同组件之间传递信息,根据开启目标组件的方式不同,Intent被分为显式启动(意图)和隐式启动(意图)两种类型,显式启动可以通过名称开启指定的目标组件;隐式启动不需要指明需要启动哪一个Activity,而是通过指定action和category等属性信息,由Android系统来决定。

    · 对于Android平台提供的5种数据存储方式,简单介绍它们

    文件存储

    分为内部存储和外部存储,直接使用Android文件系统存储数据,可以存储体积较大的数据;

     

    SharePreferences

    它是Android提供的用来存储一些简单的配置信息的一种机制,采用了.xml格式将数据存储到设备中,可以存储应用程序的各种配置信息,如用户名、密码等;

     

    ContentProvider

    主要用于应用程序之间的数据交换,它可以将自己的数据共享给其他应用程序使用;

     

    SQLite数据库

    Android自带的一个轻量级数据库,支持基本SQL语法,利用很少的内存就有很好的性能,一般使用它作为复杂数据的存储引擎,可以存储用户信息等;

     

    网络存储

    将数据存储到服务器上,通过网络提供的存储空间来存储、获取数据信息。

     

     

    · 【程序改错题、程序填空题】

    package com.example.saveqq;  
      
    import java.util.HashMap;  
    import java.util.Map;  
      
    import android.content.Context;  
    import android.content.SharedPreferences;  
      
    public class SPSaveQQ{  
        // 保存QQ账号和登录密码到data.xml文件中  
        public static boolean saveUserInfo(Context context, String number, String password) {  
            SharedPreferences sp = context.getSharedPreferences("data", Context.MODE_PRIVATE);  
            SharedPreferences.Editor edit = sp.edit();  
            edit.putString("userName", number);  
            edit.putString("pwd", password);  
            edit.commit();  
            return true;  
        }  
        //从data.xml文件中获取存储的QQ账号和密码  
        public static Map<String, String> getUserInfo(Context context) {  
            SharedPreferences sp = context.getSharedPreferences("data", Context.MODE_PRIVATE);  
            String number = sp.getString("userName", null);  
            String password = sp.getString("pwd", null);  
            Map<String, String> userMap = new HashMap<String, String>();  
            userMap.put("number", number);  
            userMap.put("password", password);  
            return userMap;  
        }  
    }  

     

    · 服务的启动方式有几种?分别是哪几种?

    答:两种。分别是startService方式启动和bindService方式启动,通过startService()方法启动服务,服务会长期在后台运行,并且服务的状态与开启者的状态没有关系,即使启动服务的组件已经被销毁,服务也会依旧运行;当一个组件通过bindService()启动服务时,服务会与组件绑定,一个被绑定的服务提供一个客户端与服务器接口,允许组件与服务交互、发送请求、得到结果,多个组件可以绑定一个服务,当调用onUnbind()方法时,这个服务就会被销毁。

    · 【程序改错题、程序填空题】

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        xmlns:tools="http://schemas.android.com/tools"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:background="@drawable/bg"  
        android:orientation="vertical">  
      
        <EditText  
            android:id="@+id/et_inputpath"  
            android:layout_width="match_parent"  
            android:layout_height="wrap_content"  
            android:text="data/data/com.example.musicplayer/a.mp3" />  
        <LinearLayout  
            android:layout_width="match_parent"  
            android:layout_height="wrap_content"  
            android:layout_marginTop="10dp"  
            android:layout_gravity="center_horizontal"  
            android:gravity="center"  
            android:orientation="horizontal" >  
            <TextView  
                 android:id="@+id/tv_play"  
                 android:layout_width="0dp"  
                 android:layout_height="wrap_content"  
                 android:layout_weight="1"  
                 android:drawablePadding="3dp"  
                 android:drawableTop="@drawable/play"  
                 android:gravity="center"  
                 android:text="播放" />  
            <TextView  
                 android:id="@+id/tv_pause"  
                 android:layout_width="0dp"  
                 android:layout_height="wrap_content"  
                 android:layout_weight="1"  
                 android:drawablePadding="3dp"  
                 android:drawableTop="@drawable/pause"  
                 android:gravity="center"  
                 android:text="暂停" />  
        </LinearLayout>  
    </LinearLayout>  

    · 【程序改错题、程序填空题】

    package com.example.readsms;  
      
    import java.util.ArrayList;  
    import java.util.List;  
      
    import android.app.Activity;  
    import android.content.ContentResolver;  
    import android.database.Cursor;  
    import android.net.Uri;  
    import android.os.Bundle;  
    import android.view.View;  
    import android.widget.TextView;  
      
    public class MainActivity extends Activity {  
        private TextView tvSms;  
        private TextView tvDes;  
        private String text = "";  
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            // TODO Auto-generated method stub  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_main);  
            tvSms = (TextView) findViewById(R.id.tv_sms);  
            tvDes = (TextView) findViewById(R.id.tv_des);  
        }  
        public void readSMS(View view) {  
            Uri uri = Uri.parse("content://sms/");  
            ContentResolver resolver = getContentResolver();  
            Cursor cursor = resolver.query(uri, new String[]{ "_id", "address",   
                    "type", "body","date"}, null, null, null);  
            List<SmsInfo> smsInfos = new ArrayList<SmsInfo>();  
            if(cursor != null && cursor.getCount() >0 ) {  
                tvDes.setVisibility(View.VISIBLE);  
                while(cursor.moveToNext()) {  
                    int _id = cursor.getInt(0);  
                    String address = cursor.getString(1);  
                    int type = cursor.getInt(2);  
                    String body = cursor.getString(1);  
                    long date = cursor.getLong(4);  
                    SmsInfo smsInfo = new SmsInfo(_id, address, type, body, date);  
                    smsInfos.add(smsInfo);  
                }  
                cursor.close();  
            }  
            for (int i = 0;i < smsInfos.size(); i++) {  
                text += "手机号码:" + smsInfos.get(i).getAddress() + "\n";  
                text += "短信内容:" + smsInfos.get(i).getBody() + "\n\n";  
                tvSms.setText(text);  
            }  
        }  
          
    }  

    · 【程序改错题、程序填空题】

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
       xmlns:tools="http://schemas.android.com/tools"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:background="@android:color/white"  
        tools:context=".MainActivity">  
        <ImageView  
            android:id="@+id/iv_flower"  
            android:layout_width="150dp"  
            android:layout_height="267dp"  
            android:layout_centerInParent="true"  
            android:background="@layout/frame"  
            android:layout_marginBottom="20dp" />  
        <Button  
            android:id="@+id/btn_play"  
            android:layout_width="70dp"  
            android:layout_height="70dp"  
            android:layout_centerInParent="true"  
            android:background="@android:drawable/ic_media_play"/>  
    </RelativeLayout>  

    · 【程序改错题、程序填空题】

    package com.example.frame;  
      
    import android.app.Activity;  
    import android.graphics.drawable.AnimationDrawable;  
    import android.os.Bundle;  
    import android.view.View;  
    import android.widget.Button;  
    import android.widget.ImageView;  
      
    public class MainActivity extends Activity implements View.OnClickListener{  
        private ImageView iv_flower;  
        private Button btn_start;  
        private AnimationDrawable animation;   
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_main);  
            iv_flower = (ImageView) findViewById(R.id.iv_flower);  
            btn_start = (Button) findViewById(R.id.btn_play);  
            btn_start.setOnClickListener(this);  
            //拿到AnimationDrawable对象  
             animation = (AnimationDrawable)iv_flower.getBackground();         
        }  
      
        public void onClick(View v) {  
            //播放动画  
            if(!animation.isRunning()){  
                animation.start();  
                btn_start.setBackgroundResource(android.R.drawable.ic_media_pause);  
            }else{  
                animation.stop();  
                btn_start.setBackgroundResource(android.R.drawable.ic_media_play);  
            }  
        }  
    }  

    · 【程序改错题、程序填空题】

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        xmlns:tools="http://schemas.android.com/tools"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:orientation="vertical"  
        tools:context=".MainActivity" >  
      
        <RelativeLayout  
            android:layout_width="match_parent"  
            android:layout_height="wrap_content" >  
      
            <EditText  
                android:id="@+id/et_path"  
                android:layout_width="match_parent"  
                android:layout_height="wrap_content"  
                android:hint="请输入视频文件的路径"  
                android:layout_toLeftOf="@+id/bt_play" />  
      
            <ImageView  
                android:id="@+id/bt_play"  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:layout_alignParentRight="true"  
                android:layout_centerVertical="true"  
                android:src="@android:drawable/ic_media_play" />  
        </RelativeLayout>  
      
        <LinearLayout  
            android:layout_width="wrap_content"  
            android:layout_height="match_parent"  
            android:layout_below="@+id/play" >  
      
            <VideoView  
                android:id="@+id/video_view"  
                android:layout_width="match_parent"  
                android:layout_height="match_parent" />  
        </LinearLayout>  
      
    </LinearLayout>  

    · 【程序改错题、程序填空题】

    package com.example.videoview;  
      
    import android.app.Activity;  
    import android.media.MediaPlayer;  
    import android.os.Bundle;  
    import android.view.View;  
    import android.widget.EditText;  
    import android.widget.ImageView;  
    import android.widget.MediaController;  
    import android.widget.VideoView;  
    public class MainActivity extends Activity implements View.OnClickListener {  
        private EditText et_path;  
        private ImageView bt_play;  
        private VideoView videoView;  
        private MediaController controller;  
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_main);  
            et_path = (EditText) findViewById(R.id.et_path);  
            bt_play = (ImageView) findViewById(R.id.bt_play);  
            videoView = (VideoView) findViewById(R.id.video_view);  
            controller = new MediaController(this);  
            videoView.setMediaController(controller);  
            bt_play.setOnClickListener(this);  
        }  
        @Override  
        public void onClick(View v) {  
            switch (v.getId()) {  
            case R.id.bt_play:  
                play();  
                break;  
            }  
        }  
        private void play() {  
            if (videoView != null && videoView.isPlaying()) {  
                bt_play.setImageResource(android.R.drawable.ic_media_play);  
                videoView.stopPlayback();  
                return;  
            }  
            videoView.setVideoPath(et_path.getText().toString());  
            videoView.start();  
            bt_play.setImageResource(android.R.drawable.ic_media_pause);  
            videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {  
                @Override  
                public void onCompletion(MediaPlayer mp) {  
                    // TODO Auto-generated method stub  
                    bt_play.setImageResource(android.R.drawable.ic_media_play);  
                }  
            });  
        }  
    }  

     

    END.

    展开全文
  • android移动开发基础教程,适合初学着使用 本书共10章,第1-2章主要讲解Android的基础知识,包括Android起源、Android体系结构、开发环境搭建、UI布局等。第3-8章主要讲解Android中的数据存储以及四大组件,包括文件...
  • Android移动开发基础案例教程课件PPT,很好的入门PPT,适合初学者
  • ANDROID移动开发基础案例教程 PDF扫描版 黑马程序员 -------------------------------------- 传智播客在Android开发领域的又一力作,*新的Android studio开发环境,提供免费教学资源,包括10 个精美教学PPT、1000 ...
  • 黑马《Android移动开发基础案例教程》-教学设计,质量比较高,上课用很合适
  • 这里面有基础安卓开发教程,实用老师教学,学生课后巩固练习。附带安卓开发实战教程链接。
  • 本科学习安卓的时候遇到了很多问题,教材比较过时,所以选择了这个教材,看着PPT学习,比较有帮助,有PPT,有练习!!!android 移动开发基础案列教程-黑马程序员
  • 这个是工业和信息化“十三五”人才培养规划教材Android移动开发基础案例教程,黑马程序员编著配套源代码
  • Android移动开发案例教程源代码第1-2章所有,涵盖与教程相对应的所有源码内容
  • 移动开发也称为手机开发,或叫做移动互联网开发。是指以手机、PDA、UMPC等便携终端为基础,进行相应的开发工作,
  • Android移动开发项目式教程(第2版) 这本书的全部源代码
  • 文件中包含《Android移动应用开发案例教程》一书中项目源代码,供初学者参考。
  • android移动应用基础教程》—习题答案.docx
  • 本章目录一、服务概述二、服务的创建三、服务的生命周期四、服务的启动方式1、调用startService()方法启动服务2、调用bindService()方法启动服务五、服务的...manifest xmlns:android="http://schemas.android.com/apk/

    一、服务概述

    在这里插入图片描述

    二、服务的创建

    在这里插入图片描述
    清单文件:

    <?xml version="1.0" encoding="utf-8"?>
         <manifest xmlns:android="http://schemas.android.com/apk/res/android">
                <application …… >
                      <service
                           android:name=".MyService"//服务的路径
                           android:enabled="true"//表示系统是否能够实例化该组件
                           android:exported="true" >//表示该服务是否能够被其他应用程序组件调用
                      </service>
               </application>
         </manifest>
    

    三、服务的生命周期

    在这里插入图片描述
    在这里插入图片描述

    四、服务的启动方式

    1、调用startService()方法启动服务

    在这里插入图片描述
    在这里插入图片描述

    2、调用bindService()方法启动服务

    在这里插入图片描述
    在这里插入图片描述

    五、服务的通信

    1、本地服务通信和远程服务通信

    在这里插入图片描述

    2、实战演练——音乐播放器

    在这里插入图片描述
    音乐播放器的具体实现过程可以参照博客Android Studio如何实现音乐播放器(简单易上手)

    六、本章小结

    本章主要讲解了Android中的服务,首先讲解了服务的概述,接着讲解如何创建服务、服务的生命周期、服务的两种开启模式,最后讲解了使用服务在程序中进行通信。在程序开发中,服务的使用非常广泛,初学者需要熟练掌握并运用。

    有人住高楼,有人在深沟,有人光万丈,有人一身锈,世人万千种,浮云莫去求,斯人若彩虹,遇上方知有。————《怦然心动》

    展开全文
  • 资源名称:Android 移动应用基础教程内容简介:由传智播客高教产品研发部编著的《Android移动应用基础教程》为Android入门书籍,本书站在初学者的角度,将每个讲解的知识都进行了深入分析,并使用生动形象的情景化...
1 2 3 4 5 ... 20
收藏数 57,483
精华内容 22,993
关键字:

安卓移动开发基础案例教程