![](https://img-blog.csdnimg.cn/20190904221257468.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
android
文章平均质量分 76
Liu Weidong
这个作者很懒,什么都没留下…
展开
-
kotlin学习指南
基本语法程序入口fun main() { println("Hello Kotlin!")}数据类型基本类型:数字(整数与浮点数)、字符、布尔值、数组、字符串。ByteShortIntLongFloatDouble对于以小数初始化的变量,编译器会推断为 Double 类型。 如需将一个值显式指定为 Float 类型,请添加 f 或 F 后缀。变量...原创 2021-05-13 18:09:11 · 801 阅读 · 3 评论 -
android SDK 开发说明
文章目录SDK开发最终交付物开发原则编码规范性能安全与校验SDK集成SDK(Software Development Kit)软件开发工具包。如:推送SDK、分享SDK等。SDK 实现目标:简洁、稳定、高效。SDK开发最终交付物代码接入文档 文档内容包括:更新记录、基本信息、API 说明、集成步骤、FAQ等。Demo 示例开发原则核心原则稳定,不能导致APP的崩溃。设计原则可维护性、可重用性、可扩展性接口易用性——降低接入方的使用难度兼容性——新版本对旧版本的兼容命原创 2021-03-04 22:15:29 · 401 阅读 · 1 评论 -
android组件化
模块化是业务导向,组件化是功能导向。模块化模块化编程将程序按照功能拆分成相互独立的若干模块。原创 2021-01-27 16:03:20 · 1142 阅读 · 6 评论 -
移动开发技术的进化历程(原生开发与跨平台技术)
文章目录原生开发跨平台技术Hybrid 技术JavaScript开发 与 原生渲染React NativeWeex快应用总结自绘UI 与 原生QTFlutter总结原生开发原生应用程序是指某一个移动平台(比如iOS或安卓)所特有的应用,使用相应平台支持的开发工具和语言,并直接调用系统提供的SDK API。比如 Android 原生应用就是指使用 Java 或 Kotlin 语言直接调用Andr...原创 2020-04-19 20:22:30 · 2270 阅读 · 1 评论 -
android-框架篇-OkHttp-3.9.0
名称开发者时间备注RetrofitSquareJakeWhartonOkHttpSquare2013-05-06VolleyGoogle2013适合数据量大,需要频繁通信的网络操作。不适用文件的上传下载操作。Android-Async-HttpApache HttpClientApacheAPI 23:Android 6.0上被删除HttpURLConnectionJDKjava.net包下OkHttp官网h...原创 2021-03-09 23:08:38 · 189 阅读 · 1 评论 -
android-性能篇-卡顿与ANR
ANR即使编写出能够通过世界上的所有性能测试的代码,却仍有可能让用户感觉迟钝、发生挂起或卡住很长时间,或者处理输入的时间过长。在应用响应能力方面可能发生的最糟糕的情况就是“应用无响应”(ANR) 对话框。在 Android 中,系统会通过显示说明应用已停止响应的对话框来防范在一段时间内响应不足的应用。此时,应用已在相当长的一段时间内没有响应,因此系统会向用户提供退出此应用的选项。在设计应用时应充分考虑响应能力,让系统永远不会向用户显示 ANR 对话框,这一点至关重要。什么会触发ANR?当应用无法响应原创 2020-05-21 09:12:33 · 723 阅读 · 0 评论 -
Android应用数据和文件
键值对保存一个相对较小的键值对集合,则应使用 SharedPreferences。数据库Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。SQLite 使用注意:要在应用中使用 Room,请在应用的 build.gradle 文件中声明 Room 依赖项。分享数据app安装位置从 API 级别 8 开始,您可以允许应用安装到外部存储装置(例如,设备的 SD 卡)。您可以使用 android:installLocation 清原创 2020-05-17 21:37:14 · 463 阅读 · 0 评论 -
Android后台任务
简介每个 Android 应用都有一个主线程,负责处理界面(包括测量和绘制视图)、协调用户互动以及接收生命周期事件。如果有太多工作在主线程中进行,则应用可能会挂起或运行速度变慢,从而导致用户体验不佳。任何长时间运行的计算和操作(例如解码位图、访问磁盘或执行网络请求)都应在单独的后台线程上完成。一般来说,任何所需时间超过几毫秒的任务都应该分派到后台线程。在用户与应用积极互动时,可能需要执行几项这样的任务。后台处理的挑战后台任务会使用设备的有限资源,例如 RAM 和电池电量。如果处理不当,可能会导致用户体原创 2020-05-17 14:21:44 · 868 阅读 · 0 评论 -
Android进程间通信
简介IPC(Inter-Process Communication,进程间通信)Android 平台下,各个进程都占有一块自己独有的内存空间,各个进程在通常情况下只能访问自己独有的内存空间,而不能对别的进程的内存空间进行访问。因此,为进行通信,进程需将其对象分解成可供操作系统理解的原语,并将其编组为可供您操作的对象。编写执行该编组操作的代码较为繁琐,因此 Android 会使用 AIDL 为您处理此问题。AIDLAIDL(Android Interface Definition Language,即原创 2020-05-17 13:00:37 · 232 阅读 · 0 评论 -
android-源码篇-Handler
背景有时候需要在子线程中进行耗时的 I/O 操作,读取文件或者访问网络等,当耗时操作完成以后可能需要在 UI 上做一些改变,由于 Android 开发规范的限制,不能在子线程中访问 UI 控件,否则就会触发程序异常,这个时候通过 Handler 就可以将更新 UI 的操作切换到主线程中执行。相关类HandlerLooper(消息循环)Message(消息)MessageQueue(存...原创 2020-05-03 18:50:48 · 164 阅读 · 0 评论 -
android-view篇-ConstraintLayout 约束布局
文章目录概述相对定位边距居中和偏移Circular positioning尺寸约束链GroupGuideline参考概述ConstraintLayout 主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。Android Studio 2.3 开始,官方模板默认使用 ConstraintLayout。添加依赖,如下:implementation 'com.android.sup...原创 2020-05-02 23:22:54 · 633 阅读 · 0 评论 -
android-学习篇-BroadcastReceiver(广播)
文章目录简介接收广播发送广播通过权限限制广播对进程状态的影响参考简介Android 应用与系统和其他应用之间可以相互收发广播消息,这与发布-订阅设计模式相似。这些广播会在所关注的事件发生时发送。接收广播由于接收器的 onReceive(Context, Intent) 方法在主线程上运行,因此它会快速执行并返回。广播接收操作在10秒内完成。方式一 清单文件中声名 <receiver android:name=".MyBroadcastReceiver" android:export原创 2020-05-17 15:53:12 · 358 阅读 · 0 评论 -
android-学习篇-Service(服务)
简介Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件。两种工作状态:启动状态,主要用于执行后台计算。startService()绑定状态,主要用于其他组件和 Service 的交互。bindService()创建 Service自定义类继承 ServiceServicepackage android.app;public abstract class Service extends ContextWrapper implements ComponentCall原创 2020-05-17 14:22:19 · 155 阅读 · 0 评论 -
android-学习篇-Activity
生命周期onCreate()onStart()onResume()onPause()onStop()onDestroy()保存和恢复状态onSaveInstanceState()onRestoreInstanceState()注意:当用户显式关闭 Activity 时,或者在其他情况下调用 finish() 时,系统不会调用onSaveInstanceState()A...原创 2020-04-02 21:00:28 · 203 阅读 · 0 评论 -
android-学习篇-基础知识
四大组件ActivityBroadcastReceiverServiceService分为两种工作状态:启动状态,主要用于执行后台计算。绑定状态,主要用于其他组件和Service的交互。ContentProviderIntenthttps://developer.android.google.cn/guide/components/intents-filters.htmlAnimator逐帧动画:Drawable Animation。res/anim,android:onesho原创 2020-05-17 14:18:27 · 310 阅读 · 0 评论 -
android-view-事件分发
点击事件的事件分发,其实就是对MotionEvent事件的分发过程,产生MotionEvent后,系统需要把这个事件传递给一个具体的View,而这个传递的过程就是分发过程。事件传递的三个阶段:分发(Dispatch):事件分发对应dispatchTouchEvent方法。方法返回值true表示事件被当前视图消费掉,不再继续分发事件;方法返回值是super.dispatchTouchEv...原创 2018-12-06 23:19:52 · 125 阅读 · 0 评论 -
android-view-滑动
滑动是实现绚丽的自定义控件的基础。基础知识 弹性滑动 滑动冲突一 基础知识MotionEvent事件类型ACTION_DOWN:手指刚接触屏幕 ACTION_MOVE:手指在屏幕上移动 ACTION_UP:手指从屏幕上松开的一瞬间getX/getY:相对于当前View左上角的坐标getRawX/getRawY:相对于手机屏幕左上角的坐标TouchSlop...原创 2018-12-06 23:40:27 · 148 阅读 · 0 评论 -
android-view
ActivityThread中,当Activity对象被创建完毕后,会将DecorView添加到Window中,同时会创建ViewRootImpl对象,并将ViewRootImpl对象和DecorView建立关联。Activity的UI框架 Activity上Window的创建关联流程 基础知识 view的绘制Activity的UI框架Activity上Window的创建关...原创 2018-12-07 00:17:24 · 124 阅读 · 0 评论 -
android-ADB
ADB(Android Debug Bridge)adb devices:显示当前运行的全部模拟器adb shell:进入模拟器的shell模式adb shell wm density:查看屏幕密度adb shell wm size:查看屏幕分辨率adb helpadb versionadb start-service:启动adb kill-service:停止...原创 2017-07-23 18:04:52 · 311 阅读 · 0 评论 -
android-历史版本
官方地址系统架构previewandroid 10 - API 292019年9月10日发布。支持可折叠5G网络智能回复通知黑色主题手势导航Settings PanelsSharing shortcuts提升用户隐私安全相机和媒体ConnectivityAndroid foundationsFaster updates, fresher codeandroi...原创 2020-04-03 20:36:13 · 1115 阅读 · 0 评论 -
Android Gradle Plugin
文章目录概览3.5.0 (2019/8)3.4.0 (2019/4)3.3.0 (2019/1)3.2.0 (2018/9)3.1.0 (2018/3)3.0.0 (2017/10)参考概览Android Studio 构建系统以Gradle为基础,Android Gradle plugin 添加了几项专用于构建 Android 应用的功能。Gradle 和 Android 插件独立于 Android Studio 运行。这意味着,您可以在 Android Studio 内、计算机上的命令行或未安装原创 2020-05-15 23:36:07 · 622 阅读 · 1 评论 -
android-浅谈
基本架构Android底层建立在Linux系统上。应用程序层、应用程序框架层、函数库和Android运行时、Linux内核层。 Android运行时:Android核心库集和Dalvik虚拟机。1、每个Android应用程序都运行在单独的Dalvik虚拟机内(即...原创 2017-07-24 20:33:28 · 289 阅读 · 0 评论