精华内容
下载资源
问答
  • 安卓开发常用接口
    2021-06-02 15:50:04

    本文算是自己对于andorid开发中一些常用的设计模式的学习汇总。在本文中表述若有纰漏或者理解未至深处时还望读者指出,多谢了。

    关于android现在主流的框架开发,比如mvp + rxjava + reftofit2 + dagger2这样的框架我们在这里不做赘述,本文只探讨android常用的一些设计模式(其实就是java中的设计模式)

    NO.1 装饰者模式(Decorator Pattern)

    装饰者模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。

    特点

    1.装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。

    2. 装饰对象包含一个真实对象的引用(reference)

    3. 装饰对象接受所有来自客户端的请求。它把这些请求转发给真实的对象。

    4. 装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设计中,通常是通过继承来实现对给定类的功能扩展。

    何时使用

    1. 需要扩展一个类的功能,或给一个类添加附加职责。

    2. 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。

    3. 需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变的不现实。

    4. 当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。

    优点

    1. Decorator模式与继承关系的目的都是要扩展对象的功能,但是Decorator可以提供比继承更多的灵活性。

    2. 通过使用不同的具体装饰类以及这些装饰类的排列组合,设计师可以创造出很多不同行为的组合

    缺点

    1. 这种比继承更加灵活机动的特性,也同时意味着更加多的复杂性。

    2. 装饰模式会导致设计中出现许多小类,如果过度使用,会使程序变得很复杂。

    3. 装饰模式是针对抽象组件(Component)类型编程。但是,如果你要针对具体组件编程时,就应该重新思考你的应用架构,以及装饰者是否合适。当然也可以改变Component接口,增加新的公开的行为,实现“半透明”的装饰者模式。在实际项目中要做出最佳选择。

    设计原则

    1. 多用组合,少用继承。利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在运行时动态地进行扩展。

    2. 类应设计的对扩展开放,对修改关闭。

    模式简化

    1. 如果只有一个Concrete Component类而没有抽象的Component接口时,可以让Decorator继承Concrete Component。

    2. 如果只有一个Concrete Decorator类时,可以将Decorator和Concrete Decorator合并。

    示例

    java IO 流是典型的装饰模式。大家可以自行查看相应的源码。

    NO.2 单例模式

    NO.3 工厂模式

    NO.4 观察者模式

    NO.5 建造者模式

    更多相关内容
  • android常用api接口

    2018-06-25 14:35:53
    适合adt 开发 android常用api接口,包括Wi-Fi APIWi-Fi API为应用程序提供了一种与那些带有Wi-FI网络接口的底层无线堆栈相互交流的手段。几乎所有的请求设备信息都是可利用的,包括网络的连接速度、IP地址、当前...
  • Linux(Android)驱动开发——常用硬件通信接口及协议-附件资源
  • 《Android底层接口与驱动开发技术详解》内容实用,讲解翔实,全书分为3篇共21章,第1~3章是基础篇,介绍了Android开发的基础性知识,分别讲解了搭建开发环境、驱动介绍和Linux内核的基本知识;第4~9章是必备技术篇...
  • android程序开发中,我们需要用到各种各样的方法、类和接口,以提高我们的开发效率,但比较常用的有哪些呢?下面小编在网上搜罗了几十个分享给大家,一起来看看吧。1、Throwable类中的getStackTrace()方法,根据这...

    78240521_1

    在android程序开发中,我们需要用到各种各样的方法、类和接口,以提高我们的开发效率,但比较常用的有哪些呢?下面小编在网上搜罗了几十个分享给大家,一起来看看吧。

    1、Throwable类中的getStackTrace()方法,根据这个方法可以得到函数的逐层调用地址,其返回值为StackTraceElement[];

    2、StackTraceElement类,其中四个方法getClassName(),getFileName(),getLineNumber(),getMethodName()在调试程序打印Log时非常有用;

    3、UncaughtExceptionHandler接口,再好的代码异常难免,利用此接口可以对未捕获的异常善后;

    4、Resources类中的getIdentifier(name, defType, defPackage)方法,根据资源名称获取其ID,做UI时经常用到;

    5、View中的isShown()方法,以前都是用view.getVisibility() == View.VISIBLE来判断的;

    6、Arrays类中的一系列关于数组操作的工具方法:binarySearch(),asList(),equals(),sort(),toString(),copyOfRange()等;

    Collections类中的一系列关于集合操作的工具方法:sort(),reverse()等;

    7、android.text.format.Formatter类中formatFileSize(Context, long)方法,用来格式化文件Size(B→KB→MB→GB);

    8、android.media.ThumbnailUtils类,用来获取媒体(图片、视频)缩略图;

    9、String类中的format(String, Object...)方法,用来格式化strings.xml中的字符串;

    10、View类中的三个方法:callOnClick(),performClick(),performLongClick(),用于触发View的点击事件;

    11、TextUtils类中的isEmpty(CharSequence)方法,判断字符串是否为null或"";

    12、TextView类中的append(CharSequence)方法,添加文本。一些特殊文本直接用+连接会变成String;

    13、View类中的getDrawingCache()等一系列方法,目前只知道可以用来截图;

    14、DecimalFormat类,用于字串格式化包括指定位数、百分数、科学计数法等;

    15、System类中的arraycopy(src, srcPos, dest, destPos,

    length)方法,用来copy数组;

    16、Fragment类中的onHiddenChanged(boolean)方法,使用FragmentTransaction中的hide(),show()时貌似Fragment的其它生命周期方法都不会被调用,太坑爹!

    17、Activity类中的onWindowFocusChanged(boolean),onNewIntent(intent)等回调方法;

    18、View类中的getLocationInWindow(int[])方法和getLocationOnScreen(int[])方法,获取View在窗口/屏幕中的位置;

    19、TextView类中的setTransformationMethod(TransformationMethod)方法,可用来实现“显示密码”功能;

    20、TextWatcher接口,用来监听文本输入框内容的改变,可用来实现一系列具有特殊功能的文本输入框;

    21、View类中的setSelected(boolean)方法结合android:state_selected=""用来实现图片选中效果;

    22、Surface设置透明:SurfaceView.setZOrderOnTop(true);

    SurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);但是会挡住其它控件;

    23、ListView或GridView类中的setFastScrollEnabled(boolean)方法,用来设置快速滚动滑块是否可见,当然前提是item够多;

    24、PageTransformer接口,用来自定义ViewPager页面切换动画,用setPageTransformer(boolean, PageTransformer)方法来进行设置;

    25、apache提供的一系列jar包:commons-lang.jar,commons-collections.jar,commons-beanutils.jar等,里面很多方法可能是你曾经用几十几百行代码实现过的,但是执行效率或许要差很多,比如:ArrayUtils,StringUtils……;

    26、AndroidTestCase类,Android单元测试,在AndroidStudio中使用非常方便;

    27、TextView类的setKeyListener(KeyListener)方法;

    其中DigitsKeyListener类,使用getInstance(String accepted)方法即可指定EditText可输入字符集;

    28、ActivityLifecycleCallbacks接口,用于在Application类中监听各Activity的状态变化;

    29、Context类中的createPackageContext(packageName, flags)方法,可用来获取指定包名应用程序的Context对象。

    看着这些方法、类和接口,是不是有一种豁然开朗的赶脚,原来这个时候该用这种方法。觉得有用的亲赶紧收藏吧~~

    展开全文
  • Android开发中我们很多地方都用到了方法的回调,回调就是把方法的定义和功能导入实现分开的一种机制,目的是为了解耦他的本质是基于观察者设计模式,即观察者设计模式的的简化版,例如:在下载时候的进度回调,在...
  • Eclipse快捷键-方便查找,呵呵,记性不好 行注释/销注释 Ctrl+/ 块注释/销注释/XML注释 Ctrl+Shift+/ Ctrl+Shift+\ 查找 查找替换 Ctrl+H Ctrl+F 查找... 快速修正 Ctrl+1 引入某个类(接口)ctrl + shift + m 加头注释
  • 如果是熟悉安卓的开发者都会知道,在Android的架构里面是有4种应用程序,分别是Activity,Service服务,ContentProvider内容提供者,以及BroadcastReceiver广播接收器。本文将介绍一下这四个组件是怎样的。我们知道...

    如果是熟悉安卓的开发者都会知道,在Android的架构里面是有4种应用程序,分别是Activity,Service服务,ContentProvider内容提供者,以及BroadcastReceiver广播接收器。本文将介绍一下这四个组件是怎样的。

    我们知道Android操作系统,实际上是一个复杂的操作平台,并且也是包含了多种功能的一些模块,比如用户界面系统、系统间通信系统、数据库系统和定位服务等,并且的话各种功能模块之间相互配合为应用程序提供服务。

    第一:活动activities——桌面操作系统中独立的应用程序类似

    84fa156931b859f5ee3fee91ceb374c3.png

    操作者是可以通过查询queries和意图intents向其他活动或服务services获取数据和服务。

    第二:服务services——后台程序daemons类似

    45a7adab80b4471330e9417ebd0b2f7a.png

    如果是启动以后,将会是一直在后台运行,然后是直到手机设备关机为止。一般服务是不显示用户界面的

    比如当用户可以播放mp3的时刻运行其他一些应用程序,但在退出操作界面后仍然维持程序的一个运行。

    第三:广播和意图的接收器(broadcast and Intent Receivers)

    e48eca8fe34bc3f98fe5c23a67f9e01e.png

    表示的是用户处理应用程序出发的服务请求。广播接收器是用户处理系统级别的一个事件消息,这些消息可能是android系统本身发出的,也有可能是来自系统中正在运行的其它的应用程序。当一个活动或者服务通过实现意图接收器来向其他应用程序提供服务,就会意图接收器就是一段可执行的代码,负责响应其它的活动或者服务发出的数据或者服务请求。

    当想要发送请求的活动、客户端将会首先需要创建一个意图的对象,然后将这个意图的对象,会给android系统,最后由android系统决定使用哪个应用程序处理该意图,智能化的响应。

    第四:内容提供器Contentproviders

    1708062891eaef0b8b19d05d5ce80df0.png

    作用是用户向其它活动或服务提供的数据服务。一般内容提供器是通过使用标准URI(uniform resource identifier)的接口为其他应用程序提供数据服务,数据的请求者甚至不需要去知道服务的提供者是那个东西。

    例如:某个应用程序发出了一个查询某个联系人信息的消息,它的请求格式如下:

    Content://contacts/people

    Android系统就会查询系统中注册了这个URI格式的内容提供器,并且是将请求发送给响应的应用程序,若程序没有启动,系统将会自动的启动。当有多个应用程序都注册了同样的URI格式,则操作系统就会提示用户去选择其中的一个。

    要想熟悉安卓,组件、服务、这些细微的知识点还是需要去弄明白的,安卓是一个复杂的操作系统,功能模块的学习是开发的基础,系统化、有连串性的进行学习是提高的有效方法。

    展开全文
  • Android开发规范.docx

    2020-08-05 14:45:58
    总结 常规团队合作android开发规范使用。常规团队合作android开发规范使用。常规团队合作android开发规范使用。
  • 写给跟我一样刚开始接触安卓的新玩家

    1. 下载并安装android studio,网址: https://developer.android.com/studio

    2. 按照提示安装直至完成

    3. 如果弹出需要配置Http proxy (由于外网无法连接,很多package需要从国内镜像下载),可以按照下面配置(有时候不一定好使,最好缺什么包自己网上搜然后直接下载),如果之后还弹出来的话直接关掉就行。

     4. 新建一个empty activity项目,默认模板是一个Hello world程序,可以连接上手机(记得再手机内预先设置好开发者模式并开启USB调试和所需权限,具体方法每个手机不太一样,请自行网上查找),如果一切没问题的话gui会显示相应的手机型号,如下图

     5. 点一下旁边的绿色小三角形编译运行一下,一般此时会build的出错(由于网络问题部分package无法下载),此时可以根据build信息下载对应包,对于hello world项目来说,一般报错是因为gradle下载失败,可以在Gradle | ReleasesFind binaries and reference documentation for current and past versions of Gradle.https://gradle.org/releases/ 找到对应版本的gradle-xxx-xxx.zip包下载下来,然后放到对应目录下,ubuntu的默认目录是 /home/用户名/.gradle/wrapper/dists/gradle-版本号-all或者bin/哈希码/ , 然后点左上菜单file->close project,然后再重新打开对应project再build一下,如果build通过了(如下图)说明没问题。

     6. 对于已有项目,除了gradle以外可能还需要配置其他sdk,如安卓平台版本,NDK等等,此时可以点开菜单栏的Tools->SDK Manager,然后根据build的错误提示安装对应的包,比如按照下图安装android 11的platform (API LEVEL 30),在下图3的地方打勾就可以显示各个版本了,如果提示是NDK或者build-Tools或者cmake版本不对,可以点击下图2旁边的SDK Tools,然后在下图3的地方打勾显示各版本,找到对应版本,然后点下面apply,按提示下载就行。

    展开全文
  • 1.xandroid为一个完整的基于MVP模式的安卓企业级快发框架,该框架集成Android开发常用主流框架。 2.该框架主要集成xUtils3、gson、dagger2、rxjava2、lambda、rxpermissions、retrofit2、ZXing、ZBar、imagepicker...
  • 安卓常用框架

    千次阅读 2022-04-21 08:48:51
    一、快速开发框架 XSnow 基于RxJava2+Retrofit2精心打造的Android基础框架,包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载,基本都是项目中必用功能,每个模块充分解耦,可自由拓展 2....
  • Android开发必备工具

    万次阅读 多人点赞 2020-03-29 17:59:06
    工欲善其事,必先利其器,在...Android程序员的吃饭工具,可以说现在绝大部分的安卓项目都是跑在Android Studio上面的。Android Studio 是基于 IntelliJ IDEA 且适用于开发 Android 应用的官方集成开发环境 (IDE...
  • 前端H5开发者转Android开发的福音,FlexboxLayout作为LinearLayout和RelativeLayout的替代者,值得各位一试,与其一同推出的还有ConstraintLayout。 github ...
  • 安卓、IOS开发常用免费接口

    千次阅读 2014-12-02 11:52:18
    安卓、IOS开发常用免费接口
  • 本人普通本科,Android开发岗。 此文主要是秋招面试经验汇总,最终拿到了百度、腾讯的offer。 主要包括阿里三面,腾讯四面,百度三面,网易三面,美团一面。 学习知识汇总 1、Java se基础 1).Java基本数据类型与...
  • Android开发必备那些工具 1.Android StudioAndroid程序员的吃饭工具,可以说现在绝大部分的安卓项目都是跑在Android Studio上面的。Android Studio 是基于 IntelliJ IDEA 且适用于开发 Android 应用的官方集成开发...
  • Android中到处可见接口回调机制,尤其是UI事件处理方面,本文给大家介绍android接口回调机制,涉及到android接口回调相关知识,对本文感兴趣的朋友可以参考下本
  • 本文类容来自我在知乎上对Android开发中,有哪些让你觉得相见恨晚的方法、类或接口?这一问题的回答,目前就总结这些,日后若有新的发现,随时补充。欢淫点赞。
  • 开发背景思路来源于开发那点事(八)在js的基础上封装的一些功能,这次写了一个安卓项目,并封装了网络请求,加载对话框,等常用的一些方法公用方法1 Common,LogUtil等工具类抽取2 ApiRequest中GET POST等方法的封装3 ...
  • 在Android下,事件的发生是在监听器下进行,android系统可以响应按键事件和触摸屏...在Android开发中我们会经常看到各种匿名内部类的使用,那么在实现button点击事件的时候也可以用匿名内部类。 这样使用的好处是: 1)
  • 安卓开发入门基础

    千次阅读 2022-05-11 21:15:53
    安卓开发入门基础
  • 速成班涌现了出来,参差不齐的开发能力,与这个供不应求的市场,相得益彰。 3、开源魅力,基于linux系统的架构,很容易的让linux那些人,利用c 的基础,以及linux技能,来进行挖宝,这里面很有名的是八门神器,root...
  • Android Studio常用插件

    2021-09-15 10:14:41
    2、Android ButterKnife Zelezny 配合ButterKnife实现注解,从此不用写findViewById 使用方法:快捷键Ctrl+Shift+B或Alt+Insert选择 3、Android Code Generator 根据布局文件快速生成对应的Activity,Fragment...
  • 安卓开发笔记

    千次阅读 2022-01-24 09:19:35
    一、安卓工程构建和第一 APP 运行 ...4.运行,工程名字上右键,run as android appclication 二、安卓的工程目录文件夹介绍 src: 存放 java 代码的,有包,有文件gen: 存放自动生成的文件,关心是R.java,程序...
  • Android USB 开发

    千次阅读 2021-11-23 20:28:56
    安卓USB 开发相关内容整理 基本概念和术语 常用类 两种开发模式 配置AndroidManifest.xml文件 配置 xml资源文件(用于过滤设备) : 建立通信 基本概念和术语 USB是一个用于数据交换的总线(Bus),发起(initiate)数据...
  • 开发android项目的常用jar包

    千次阅读 2018-05-29 16:08:31
    开发android项目的常用jar包1. 百度地图Armeabi/libBaiduMapSDK_v3_4_0_15.so, libBMapApiEngine.sobaidumapapi_v3_4_9.jar(demo),locSDK_4.1.jar(demo)开发指南:...
  • 安卓开发之SQLite数据库

    千次阅读 2021-11-10 10:43:46
    Android平台提供了完整的SQLite数据库接口,各种应用生成的数据保存在/data/data/<包名>/database目录下。 在SQLite中,可以使用标准的SQL语句来执行查询、插入、修改、删除、定义数据格式等操作。 创建数据库...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,030
精华内容 31,212
关键字:

安卓开发常用接口