精华内容
下载资源
问答
  • android移动应用开发
    千次阅读
    2019-08-06 14:58:02

           《Android移动应用开发从入门到精通》涵盖了Android开发从概念、技术到市场推广应用的全部话题,内容包括:Android概览、Android应用程序设计精髓、Android用户界面设计精髓、常用AndroidAPI、更多Android应用程序设计原则、对外发布你的Android应用程序和附录等7个部分。附录还包含了Android开发常用工具(如模拟器、DDMS、调试桥和SQLite等)的使用指南。


           《Android移动应用开发从入门到精通》不仅适合Android应用程序开发人员阅读,还能为QA测试人员提供指导。另外《Android移动应用开发从入门到精通》还可以帮助项目经理更好地管理项目进程和项目团队,帮助市场推广人员更好地把握市场、创造令人瞩目的销售业绩。


           资料地址:http://www.firstxueba.com/thread-295-1-1.html


    更多相关内容
  • Android移动应用开发习题答案.pdf
  • Android移动应用开发实验指导书,设计Android开发环境,Android应用程序,Android生命周期,Android用户界面,组件通信与广播,后台服务,数据存储与访问,位置服务于地图应用,AndroidNDK开发。
  • Delphi XE8开发iOS和Android移动应用开发教程[完整中文版]
  • 文件中包含《Android移动应用开发案例教程》电子课件,供Android移动开发者学习使用。
  • Android移动应用开发 第3版 卷1基础篇和卷2提高篇的合集 《android移动应用开发 第3版 卷Ⅰ:基础篇》由Lauren Darcey Shane Conder著 北京麦秆创智信息技术有限公司译 涵盖了android开发从概念 技术到市场推广应用...
  • Android移动应用开发从入门到精通Android移动应用开发从入门到精通Android移动应用开发从入门到精通Android移动应用开发从入门到精通
  • Android移动应用开发(第3版)卷Ⅱ:提高篇》涵盖了Android开发从概念、技术到市场推广应用的全部话题,内容包括:高级Android应用程序设计原则,高级Android用户界面设计原则,使用常用Android API,Android中的...
  • android移动应用开发(第3版)卷Ⅰ:基础篇》由Lauren Darcey、Shane Conder著,北京麦秆创智信息技术有限公司译,涵盖了android开发从概念、技术到市场推广应用的全部主题,内容包括android平台概览、android应用...
  • Android移动应用开发大作业——日程管理+邮件反馈

    Android Studio 开发手机日历管理的APP,附带邮件反馈的功能

    大三上学期Android移动应用开发课程写了个日程管理的APP,里面的东西比较简单,一个是可以查看手机里面所有日程的信息,我只选择了时间,标题和内容,可以进行增删改查,创建的日程在对应的时间会给一个提示,以消息的形式给出。另一个是邮件反馈,邮件反馈需要改一下发送方的和接收方,这个有需要的在代码里面改就行,我给你标注出来。

    由于大作业时间就给了一个星期,加上还要复习别的课程,就草草了事,没写别的功能了。

    不要关注为什么叫StudyApp,鬼知道我当时为什么起这个名。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这是项目文件目录
    在这里插入图片描述
    在这里插入图片描述
    这个是项目的配置文件,Android这个东西对版本要求的比较严格,下载下来项目后不要直接用Android Studio打开,可能会报n个错误,你自己建一个空项目,把代码文件粘贴过去,出什么错就去一个个解决,缺什么配置就去添加,这样应该能好一些。

    链接我放在最后。

    apply plugin: 'com.android.application'
    repositories {
        jcenter()
        maven {
            url "https://maven.java.net/content/groups/public/"
        }
    }
    
    android {
        compileSdkVersion 24
        buildToolsVersion "31.0.0"
        defaultConfig {
            applicationId "com.example.test"
            minSdkVersion 15
            targetSdkVersion 24
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        packagingOptions {
            pickFirst 'META-INF/*' // picks the JavaMail license file
        }
    
    }
    
    dependencies {
    
    
        compile fileTree(dir: 'libs', include: ['*.jar'])
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
    
        configurations { all*.exclude group: 'javax.activation', module: 'activation' }
        compile 'com.android.support:appcompat-v7:24.2.1'
        compile 'com.sun.mail:android-mail:1.6.0'
        compile 'com.sun.mail:android-activation:1.6.0'
        compile 'com.squareup.okhttp3:okhttp:3.4.1'
        compile 'com.google.code.gson:gson:2.7'
        compile 'com.android.support:design:24.2.1'
        testCompile 'junit:junit:4.12'
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
    
    }
    
    

    这里的EMAIL需要改成接收方的地址,自行修改吧,在config文件里,当时写的时候觉得麻烦,就在里面写了几个参数,后面的参数都放外面了。
    在这里插入图片描述
    这些参数除了TAG都需要改。
    第一个去找SMTP授权码,百度搜一下都有教程
    第二个是smtp地址,smtp 地址是 smtp 的域名服务器, 例如qq邮箱,地址就填写smtp.qq.com,我的是163
    第三个就是对应的发送方邮箱地址
    在这里插入图片描述
    最后再说一句,我做的这个App是有Bug的,日程时间如果设置成中午12点到1点之间的话,它的提醒时间会变成凌晨0点到1点,这个我没仔细找,反正检查的时候老师也没问,就不改了,还能省下几根头发,这个艰巨的任务就交给你了。
    其他的东西就不多说了,太多也说不完,想要知道运行流程的话从主活动开始看吧,我觉得我写的代码不是那么难,慢慢看,加油。

    百度网盘链接:
    链接:https://pan.baidu.com/s/1ueL7rtiOjom_Ke2-T7oCxw
    提取码:atpe

    有什么疑问加QQ 2198832604

    展开全文
  • Android移动应用开发大作业

    万次阅读 多人点赞 2020-07-21 12:29:58
    这个作业是我花了三天左右时间熬夜写出来了,到最后一天晚上脑子都木木的,属性名都懒得改了,但是页数还过得去了,好像是十一二页来着。 选题几乎没有花很多时间,因为知道要写一个总结文档我就用短学期写的一个...

    IDE:Eclipse


    这个作业是我花了三天左右时间熬夜写出来了,到最后一天晚上脑子都木木的,属性名都懒得改了,但是页数还过得去了,好像是十一二页来着。
    选题几乎没有花很多时间,因为知道要写一个总结文档我就用短学期写的一个电子阅读笔记的资料了(可以省力x),主要又是期末大作业又是搞比赛啥的,没啥多余的精力去选题然后写文档(借口借口就是因为懒)。
    而且好巧,短学期也是上05老师的课写的电子阅读笔记,这次拿来写大作业,老可持续发展了。


    代码上传到github:https://github.com/skeptical5/HaveRead


    界面
    在这里插入图片描述
    可以自己注册一个账号
    在这里插入图片描述
    点击注册之后帐号密码信息就会被记录到sqlite数据库中,可以调用。
    然后返回登录页面,填写账号密码信息,勾选记住我,下次就会自动填写账号密码了。然后选择登录。
    在这里插入图片描述
    第一个页面是阅读记录的页面,可以看自己阅读过的小说。
    在这里插入图片描述
    这里用的是listview,但是listview的单个点击事件不会写所以我就投机取巧在右下角放一个开始阅读,点击之后就可以跳转到阅读页面。
    在这里插入图片描述
    批注和分享功能都不能用,只能点击返回。
    然后点击tabhost的第二个图标,可以看到社区板块。
    在这里插入图片描述
    点击排行榜可以看到完整的排行榜。
    在这里插入图片描述
    然后点击好友动态可以跳转到动态页面。
    在这里插入图片描述
    点击详细可以查看完整的内容。
    在这里插入图片描述
    点击点赞可以变换为已点赞。
    在这里插入图片描述
    这里其实05老师在答辩的时候问过我是动态发布的还是我自己手打出来的,这是我手打出来的,动态发布的我会写但是需要时间(这个在数据库中用过很多次),而且时间比较赶,如果感兴趣的同学可以加入利用数据库发布动态。(应该不会很难?)
    一直点击返回按钮到tabhost页面点击第三个分类图标。
    在这里插入图片描述
    点击分类可以进入详细的分类页面,这几个里只写了人文社科类,点击人文社科。
    在这里插入图片描述
    然后点击每日推荐,查看推荐的书目
    在这里插入图片描述
    然后点击三体(因为也只写了三体的页面…
    在这里插入图片描述
    然后可以查看三体的详细介绍
    在这里插入图片描述
    然后一直点击返回回到tabhost页面,点击第四个用户图标。
    在这里插入图片描述
    点击每日推荐会跳转到刚刚的每日推荐的页面。
    在这里插入图片描述
    点击年度阅读报告跳转到年度阅读报告页面。
    在这里插入图片描述
    可以滑动观看。
    在这里插入图片描述
    (这个阅读报告是用了弟弟在墨刀中写的阅读报告,赞美弟弟!)
    最后点击退出登录就可以回到最开始的登录页面。
    在这里插入图片描述
    在这里插入图片描述


    就是这样啦。
    05老师从第十二周的时候就开始催我们写大作业了,但是我就是有一种害怕的情绪在,一直拖一直拖,然后到第十五周才写完,当天写到凌晨两点,然后上午十点要汇报,真的超级匆忙,以后真的不能再拖了15551我悔过。
    讲讲答辩吧,答辩的时候我发现我的年度报告出了点问题,然后就当场改,因为是老师下到位置上听你讲的,所以我不太着急,就把年度报告改好。然后过了半小时就举手,事实证明,答辩的时候一定要坐中间的位置,要不然老师看不到你举手。我当时坐在了进门最边上的位置,然后我就是最后一个答辩的人了,位置真的很重要啊。轮到我的时候已经下课了,老师好像着急吃饭,我才讲到了一半,就是那个动态那里,提问了我一个问题,是不是动态显示的。然后我说不是。老师笑了一下就给我打了分数。但是我还没介绍完啊1551,虽然05老师给了我A,但是感觉还没说完我的APP有点遗憾,害。
    然后期末一查就是满绩啦,05老师真的好好哦(每日一感慨)


    2021.9.9更新
    在github上放了数据库文件,数据库文件下载之后:
    首先先debug,再点击右上角的DDMS,
    在这里插入图片描述

    点击data
    在这里插入图片描述

    再点击data
    在这里插入图片描述
    往下翻一直找到com.zufe
    在这里插入图片描述
    然后在com.zufe下点击右上角的图标导入db文件
    在这里插入图片描述

    (我之前一直以为我发的代码里有数据库文件,居然没有,可恶)

    展开全文
  • Android移动应用开发 第3版 卷1基础篇和卷2提高篇的合集 《android移动应用开发 第3版 卷Ⅰ:基础篇》由Lauren Darcey Shane Conder著 北京麦秆创智信息技术有限公司译 涵盖了android开发从概念 技术到市场推广应用...
  • Android 移动应用 开发从入门到精通》.(张魏,李.pdf
  • Android移动应用开发从入门到精通 基本信息 原书名: Android Wireless Application Development 原出版社: Addison-Wesley Professional 作者: (美)Shane Conder Lauren Darcey 译者: 张魏 李卉 出版社:人民...
  • Android移动应用开发从入门到精通的电子书,想学习android开发的就下载吧,不错的资料!
  • Android移动开发的自测试,卷里面附带标准答案, PDF版的意见排版好了
  • Android移动应用开发》 复习题(一)

    万次阅读 多人点赞 2019-12-08 15:31:12
    Android移动应用开发》 复习题(一) (一)Android的体系结构是怎样的?请简要加以说明。 Android的系统架构采用了分层架构的思想,从上层到底层共包括四层,分别是应用层、应用框架层、系统运行库层以及Linux...

    《Android移动应用开发》

      大家好,我是亓官劼(qí guān jié ),在【亓官劼】公众号、CSDN、GitHub、B站、华为开发者论坛等平台分享一些技术博文,主要包括前端开发、python后端开发、小程序开发、数据结构与算法、docker、Linux常用运维、NLP等相关技术博文,时光荏苒,未来可期,加油~
      如果喜欢博主的文章可以关注博主的个人公众号【亓官劼】(qí guān jié),里面的文章更全更新更快。如果有需要找博主的话可以在公众号后台留言,我会尽快回复消息,其他平台私信回复较慢。
    在这里插入图片描述

    由于学习工作的需要,算法刷题将会逐渐由C++向Python3过度,正在过度中,如实现的不太优美,请见谅。

    本文原创为【亓官劼】(qí guān jié ),请大家支持原创,部分平台一直在恶意盗取博主的文章!!! 全部文章请关注微信公众号【亓官劼】。

    复习题(一)

    (一)Android的体系结构是怎样的?请简要加以说明。

    Android的系统架构采用了分层架构的思想,从上层到底层共包括四层,分别是应用层、应用框架层、系统运行库层以及Linux内核层。
    应用层:Android平台不仅仅是操作系统,也包含了许多应用程序,譬如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用。这些应用程序都是用Java语言编写的,并且可以被开发人员开发的其他应用程序所替换。
    应用框架层:该层是Android应用开发的基础。应用框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。
    系统运行库层:系统运行库层可以分成两部分,分别是系统库和Android运行时。
    Linux内核层:Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。

    (二)Android程序结构是怎样的?请简要加以分析。

    解答:如以工程名称Firstdemo作为根目录,将所有自动生成的和非自动生成的文件都保存在这个根目录下。
    (1)src目录:src目录下是java源代码存放目录,里面一般都是.java结尾的java文件。
    (2)gen目录:gen目录是Android开发工具自动生成的文件。目录中有个可自定义的包,包里有两个文件,BuildConfig.java和R.java。BuildConfig.java是Android调试用的。R.java是在建立项目时自动生成的,这个文件是只读模式,不能更改。
    (3)res目录:res目录是资源目录,可以存放应用使用到的各种资源,如XML界面文件、图片、数据等。
    (4)assets目录:assets资源目录一般可用于存放html文件、数据库文件、javascript文件等,还有原始格式的文件,例如二进制格式的音频文件、视频文件等。
    (5)AndroidMamifest.xml
    AndroidMamifest.xml项目清单文件列出了应用程序提供的功能,开发好的各种组件需要在此文件中进行配置,当应用使用到系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等)还需在此文件中声明使用权限。每个Android程序必须在根目录下包含一个AndroidMamifest.xml文件。

    (三)Activity的四种启动模式是什么?并请加以说明。
    Standard、single Top、single Task、single Instance
    Standard:默认模式,会在启动时创建一个新实例,创建的模式也可以随Intent.FLAG_ACTIVITY_NEW_TASK而改变
    single Top:当启动activity时,有相同的activity在前台与用户交互,那就复用这个activity,这个实例会被调用Activity.onNewIntent()。
    single Task:在启动activity时,若有一个运行着这个activity的task,那这个activity实例会被调到前台,并调用Activity.onNewIntent() ,启动实例的Intent的flag会被设置Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT . singleTask是singleTop的一个扩展集。
    single Instance:开辟一个只允许一个activity实例在里头运行的task. 如果用同样的intent再次启动这个activity,task会被调到前台,其Activity.onNewIntent() 会被调用. 如果这个activity实例要启动一个新activity,那么这个新activity会在一个新task中运行.

    (四)Handler消息传递机制是怎样的?举例加以说明。

    利用Handler消息传递的过程是:使用Handler发送消息,该消息被传送到指定的Message Queue。为了保证正常工作,当前线程必须有Message Queue,而Message Queue 是由Looper 对象来管理的。因此要求当前线程必须有一个Looper对象,根据不同类型的线程,处理情况不同,主要分为以下两类:
    主线程:系统以及为其初始化了Looper对象,因此可以直接创建Handler对象,并由该Handler对象发送,处理消息。
    非主线程:先调用Looper的prepare()方法创建一个Looper对象,然后调用Looper的loop()方法启动它。
    当线程有了Looper对象之后,再创建Handler子类的实例,重写handleMessage()方法处理消息,最后由loop()启动Looper对象。

    (五)如何发送广播?如何接收系统广播消息?
    Android广播分为两个方面:广播发送者和广播接收者。通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器),用于异步接收广播Intent。广播Intent是通过调用Context.sendBroadcast()发送、BroadcastReceiver()接收。广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBroadcast()、Context.sendStickyBroadcast()来实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收。
    广播接收器只能接收广播,对广播的通知做出反应,很多广播都产生于系统代码,如:时区改变的通知、电池电量不足、用户改变了语言偏好,或者开机启动等。
    广播接收器没有用户界面,但是它可以为它们接收到信息启动一个Activity或者使用NotificationManager来通知用户。

    解答:Android系统中内置了多个系统广播,只要涉及到手机的基本操作,基本上都会发出相应的系统广播。如:开机启动,网络状态改变,拍照,屏幕关闭与开启,点亮不足等等。每个系统广播都具有特定的intent-filter,其中主要包括具体的action,系统广播发出后,将被相应的BroadcastReceiver接收。系统广播在系统内部当特定事件发生时,由系统自动发出。(编程实现略。)

    (六)Service 和 Thread 的区别是什么?为什么使用Service?注意事项是什么?

    Thread是程序执行的最小单元,可以用Thread来执行一些异步操作。而Service是Android的一种机制,当它运行的时候如果是Local Service,那么对应的Service是运行在主进程的main线程中的。如果是Remote Service,那么对应的Service则是运行在独立进程的main线程中。
    Service可以用来处理一些比较复杂的操作,并且不会因为系统内存紧张而被“杀掉”。
    Service不是一个单独的进程,除非单独声明,否则它不会运行在单独的进程中,而是和启动它的程序运行在同一进程中。Service也不是线程,这意味着它将在主线程里运行。

    (七)比较进程内服务与跨进程服务的不同。

    进程内服务:同一个进程下调用的服务, (通常情况下)即在一个应用程序下的服务。
    跨进程服务:通过一个应用程序(客户端)的 Activity 调用另一个应用程序(服务端)的 Service 为跨进程服务。在 Android 中,如果需要在不同进程间实现通信,就需要用到 AIDL 技术去完成。

    (八)Executor、ExecutorService和Executors的区别是什么?

    Executor 是一个简单的标准化接口,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。根据所使用的具体 Executor 类的不同,可能在新创建的线程中,现有的任务执行线程中,或者调用 execute() 的线程中执行任务,并且可能顺序或并发执行。
    ExecutorService 提供了多个完整的异步任务执行框架。 ExecutorService 管理任务的排队和安排, 并允许受控制的关闭。
    Executors 类提供大多数 Executor 的常见类型和配置的工厂方法, 以及使用它们的几种实用工具方法
    Java 里面线程池的顶级接口是 Executor ,但是严格意义上讲 Executor 并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是 ExecutorService 。ExecutorService 继承Executor 。Executors 类为创建 ExecutorService 提供了便捷的工厂方法。

    (九)ThreadPoolExecutor和ExecutorService有怎样的关系?ThreadPoolExecutor的构造方法是怎样的?试对ThreadPoolExecutor构造方法的参数加以说明。

    关系:ThreadPoolExecutor是ExecutorSevice的一个实现类, 它使用可能的儿个池线程之一执行每个提交的任务,通常使用Executors工厂方法配置。
    方法:1. 用给定的初始参数和默认的线程工厂及被拒绝的执行处理程序创建新的ThreadPoolExecutor.
    2. 用给定的初始参数和默认的线程工厂创建新的ThreadpoolExecutor.
    3. 用给定的初始参数和默认被拒绝的执行处理程序创建新的ThreadPoolExecutor.
    4. 用给定的初始参数创建新的ThreadPoolExecutor.
    说明:✧corePoolSize: 池中所保存的线程数,包括空闲线程。
    ✧maximumPoolSize: 池中允许的最大线程数。
    ✧keepAliveTime: 当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间。
    ✧unit: keepAliveTime 参数的时间单位。
    ✧workQueue;:执行前用于保持任务的队列。此队列仅保持由execute 方法提交的
    Runnable任务。
    ✧threadFactory;:执行程序创建新线程时使用的工厂,
    ✧Handler: 由于超出线程范围和队列容量而使执行被阻塞时所使用的处理程序。

    (十)为什么说Executors类为创建ExecutorService提供了便捷的工厂方法?

    要配置一个线程池是比较复杂的, 尤其是对于线程池的原理不是很清楚的情况下, 很有可能配置的线程池不是较优的, 因此在 Executors 类里面提供了一些静态工厂, 生成一些常用的线程池。
    ( 1) newCachedThreadPool : 创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲( 60 秒不执行任务)的线程,当任务数增加时,此线程池又可以智能地添加新线程来处理任务。 此线程池不会对线程池大小做限制, 线程池大小完全依赖于操作系统(或者说 JVM )能够创建的最大线程大小。
    ( 2) newFixedThreadPool : 创建固定大小的线程池。每次提交一个任务就创建一个线程,直到线程达到线程池的最大大小。 线程池的大小一旦达到最大值就会保持不变, 如果某个线程因为执行异常而结束,那么线程池会补充一个新线程。
    ( 3) newSingleThreadExecutor : 创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。 如果这个唯一的线程因为异常结束, 那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。
    ( 4) newScheduledThreadPool :创建一个定长线程池, 此线程池支持定时以及周期性执行任务的需求。

    (十一)Java中的强引用、软引用、弱引用的区别是什么?

    强引用:是指创建一个对象并把这个对象赋值给一一个引用变量。 强引用不为null时,它指向的对象水远不会被垃圾回收,即使当内存不足时。当强引用被置为nul时,该对象则被标记为可回收的,但是GC可能依旧没有回收它,这和GC的回收算法有关,同时该对象仍然占着内存。总之,我们不能保证可回收的对象被GC回收。
    软引用:通过SoftReference类来实现。软引用指向的对象,不用置null,也可以被GC回收,对象是否被释放取决于GC算法以及GC运行时可用的内存数量。通俗地讲,内存空间足够,GC就不会回收它;如果内存空间不足了,就会回收这些对象的内存。
    弱引用:通过WeakReference类来创建。GC运行时如果碰到了弱引用对象,不管当前内存空间足够与否,都会回收它的内存,但是也有可能需要GC多次才能发现和释放弱引用的对象。
    软引用和弱引用都可以与引用队列( ReferenceQueue)关联,这样就可以知道软引用或者弱引用是否被回收。

    (十二)什么是观察者模式?观察者模式的使用场景是怎样的?观察者模式的优缺点是什么?试编程加以说明。

    观察者模式就是定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。
    使用场景:
    (1)关联行为场景。需要注意的是,关联行为是可拆分的,而不是“组合”关系。
    (2)事件多级触发场景。
    (3)跨系统的消息交换场景,如消息队列的处理机制。
    优点:观察者和被观察者之间是抽象耦合;建立了一套触发机制。
    缺点:开发和调试比较复杂,而且一个观察者卡壳,会影响整体的执行效率。同时多级触发时的效率让人担忧。

    (十三)什么是装饰模式?装饰模式的使用场景是怎样的?装饰模式的优缺点是什么?试编程加以说明。

    装饰模式就是动态地给一个对象添加一些额外的职责。
    使用场景:
    (1)需要扩展一个类的功能,或给一个类增加附加功能。
    (2)需要动态地给一个对象增加功能,这些功能可以再动态地撤销。
    (3)需要为一批的兄弟类进行改装或加装功能,当然是首选装饰模式。
    优点:
    (1)装饰类和被装饰类可以独立发展,而不会相互耦合。
    (2)装饰模式是继承关系的一个替代方案。
    (3)装饰模式可以动态地扩展一个实现类的功能,这不需要多说,装饰模式的定义就是如此。
    缺点:多层类的装饰太过复杂。

    (十四)循环对象 Looper 的作用是什么?请加以说明。

    用于为一个线程开启一个消息队列(MessageQueue),循环等待其他线程发送消息,当有消息时会唤起线程来处理消息,直到线程结束为止。通常情况下Android中并不会为新线程开启消息循环,不会用到Looper,而主线程除外,系统自动为主线程创建一个Looper对象,并创建消息队列,所以主线程会一直运行, 以处理用户事件,直至退出。
    当需要一个线程时,这个线程要能够循环处理其他线程发来的消息事件,或者需要长期与其他线程进行复杂的交互,这时就需要用到Looper来为线程建立消息队列。
    Looper对象提供了以下几个方法:
    ●prepare(): 用于初始化Looper, prepare( )方法保证每个线程至多只有一个Looper对象。
    ●loop(): 用于开启消息循环,当调用了loop( )方法后,Looper线程就真正地开始工作
    了,它会从消息队列中获取消息并交给对应的Handle对象处理消息。
    ●quit(): 用于结束Looper消息循环。

    (十五)Android客户端程序架构的设计一般应考虑哪些问题?(参考教材P374)

    (1)全局变量的定义和使用及全局数据配置;
    (2)推送的实现;
    (3)对新版本的监听和自动下载更新的实现;
    (4)相对完整的基础工具包和核心工具包(类包);
    (5)对客户端各页面单击率的统计及相应数据分析(对用户行为的分析);
    (6)嵌入广告的实现;
    (7) Android 使用UncaughtExceptionHandler捕获全局异常(线程终止异常处理);
    (8) Android系统账户的实现;(9)整个应用的后台服务;
    (10)流量统计;
    (11)整个应用的缓存实现;
    (12)整个应用的内存管理以及内存泄漏的避免;
    (13)整个应用的广播接收机制;
    (14)整个应用的并发设计模式,等等。

    (十六)如何自定义适配器与ListView控件相绑定?扩展BaseAdapter类需要重写哪些方法?试编程加以说明。
    (P40)

      大家好,我是亓官劼(qí guān jié ),在【亓官劼】公众号、CSDN、GitHub、B站、华为开发者论坛等平台分享一些技术博文,主要包括前端开发、python后端开发、小程序开发、数据结构与算法、docker、Linux常用运维、NLP等相关技术博文,时光荏苒,未来可期,加油~
      如果喜欢博主的文章可以关注博主的个人公众号【亓官劼】(qí guān jié),里面的文章更全更新更快。如果有需要找博主的话可以在公众号后台留言,我会尽快回复消息,其他平台私信回复较慢。
    在这里插入图片描述

    由于学习工作的需要,算法刷题将会逐渐由C++向Python3过度,正在过度中,如实现的不太优美,请见谅。

    本文原创为【亓官劼】(qí guān jié ),请大家支持原创,部分平台一直在恶意盗取博主的文章!!! 全部文章请关注微信公众号【亓官劼】。

    展开全文
  • DelphiXE8开发iOS和Android移动应用开发教程[真正完整版],完整版电子档。适合新手使用。
  • Android移动应用开发(第3版)卷Ⅰ:基础篇》涵盖了作者数年来在移动开发领域所积累的经验,以及成功进行移动项目开发所需的全部概念和实用技术,包括移动开发过程与传统软件开发的区别,还包括帮助你节约宝贵时间和...
  • Delphi XE8跨平台开发让你使用一套代码完成iOS和Android移动应用开发。强大的控件支持,让你可以不用编写一句代码并在短短几分钟内完成数据库的读写 应用开发,开发效率得到充分提升,让编程不再是枯燥无味的工作。...
  • 移动应用开发学习笔记(一)

    千次阅读 2022-02-02 20:24:12
    移动应用开发学习笔记(一) 学习书籍:《第一行代码 Android 第3版》 笔记内容:第一章小结
  • 基于Android移动应用开发课程标准.docx基于Android移动应用开发课程标准.docx基于Android移动应用开发课程标准.docx基于Android移动应用开发课程标准.docx基于Android移动应用开发课程标准.docx基于...
  • import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.Manifest; import android.content.DialogInterface; import android.graphics.Color; import ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 187,569
精华内容 75,027
关键字:

android移动应用开发