Android学习笔记
文章平均质量分 79
记录Android学习中的知识,分享好的文章和技术,希望可以为开源世界贡献自己的一份力量
sydMobile
我的个人博客:https://sydmobile.github.io/
展开
-
okhttp核心原理分析(1)
更多文章分类文章思维导图前言进行 okhttp 的核心源码分析,必须要搞清楚 http 协议以及相关的网络协议。这里只对协议容易混淆的地方进行说明。首先我们要明确一点,要想让两台计算机进行通信,首先需要建立连接,也就是我们常说的三次握手。计算机A 要想和计算机 B 进行通信,首先要知道计算机B 的IP 地址,知道 IP 地址后,就能访问计算机B,而要和计算机B上的那个程序通信,这个时候就需要 TCP 的地址了,也就是端口号。有了这两个信息,两者就可以建立连接了。其实这个时候就可以进行通信了。体原创 2021-01-28 16:13:13 · 264 阅读 · 0 评论 -
再谈Fragment
参考:Android FragmentFragment 就是一个 Activity 布局的一部分,可以把 Activity 的一部分布局抽离出来到 Fragment 中,并且 Fragment 也可以执行逻辑。就是把 Activity 复杂的内容抽离成几个碎片,然后拼凑起来,在 Activity 布局中,只需要引入各个不同的 Fragment 就可以 了。比如我们常见的布局,底部导航,然后每个模块对应不同的 Fragment。其实也是完全可以不使用 Fragment 的,一个页面中包含各个模块的原创 2020-09-16 18:14:24 · 221 阅读 · 0 评论 -
再不迁移到Material Design Components 就out啦
翻译自国外文档加自己理解 原文我们最近宣布了 Material Design Components(MDC)1.1.0 ,这是一个库更新,为您的 Android 应用程序带来了 Material Theming 、新的组件、深色主题和其他令人兴奋的功能。MDC取代了设计支持库。本指南将向您展示如何迁移代码库,以便您可以使用新的属性,样式和小部件。精简的主题示例本指南使用了精简的应用程序来演示迁移过程。它使用AppCompat主题,设计支持库中的小部件(包括具有自定义背景的按钮)以及需要迁移的各种其.原创 2020-09-15 18:04:37 · 641 阅读 · 0 评论 -
Material Design Compoents 1.1.0
Material Design Compoents 1.1.0增加了 Material Theming,新的组件、黑暗主题支持、等等新的功能:所有组件都支持黑暗主题新的日期选择器(具有范围选择功能和提升可访问功能)扩展 Floating Action 按钮切换按钮组支持 Android 10 进行边缘手势导航的组件改善无障碍功能全新的 Material Theming (形状、板式、颜色)稳定性和质量改进MDC的背景说明Material Com原创 2020-09-14 18:19:54 · 233 阅读 · 0 评论 -
Android低功耗蓝牙总结
这里只列出重点原理内容,更加细节的内容请阅读前面文章首先要搞清楚一点,我们在 Android 中通过 SDK 获得的蓝牙广播包是经过底层的 SDK 给我们处理过的,是一个长度为 62 的字节数组。这个长度为 62 的字节数组是怎么来的呢?想要搞清楚这个问题,首先我们要明白 iBeacon 向外发送的最原始的广播包是什么样的?首先我们要搞清楚一点,蓝牙在向外发送数据的时候是分成两个部分的一个就是普通的广播包还有一个叫做应答包。这是蓝牙协议的规定内容,针对于所有的蓝牙设备(iBeacon 只是蓝牙设.原创 2020-08-25 12:16:17 · 326 阅读 · 0 评论 -
历史角度看Support Library 到 AndroidX
历史角度看Support Library 到 AndroidX更多文章分类我们都知道 Google 在 2014 年 I/O 大会上为了统一我们 Android 端 APP 的设计风格,让 APP 更加美观,发布了新的设计语言----Material Design。突出“卡片设计”。基于网格的布局、响应动画与过渡、填充、深度效果(如光线和阴影)。它是一种设计规范,是设计人员应该去学习的,无关乎用什么开发语言,大家不要搞混了!推出 Material Design 后,Google 在 Android原创 2020-07-13 18:10:23 · 221 阅读 · 0 评论 -
基于大疆无人机SDK二次开发
基于大疆无人机SDK二次开发近期公司项目需求,需要基于大疆无人机SDK开发一款手机 APP,用于配合后台实现对无人机的管理。当然大疆本身也给我们提供了管理平台-----大疆司空。通过大疆的官方 APP 配合后台管理系统大疆司空,就可以实现对无人机的管理了。奈何大疆司空费用太高,进阶版需要 1 年 19999 的费用。因此就需要自己开发手机APP,用于给后台传输无人机的有关信息。下面就把开发过...原创 2020-05-07 14:42:44 · 7967 阅读 · 4 评论 -
关于Support库28及以上版本无法查看源码问题
不知道大家有没有注意到这么个问题:在最新创建项目的时候,有了 User androidx.* artifacts 这样一个选项。可能你还不知道 androidx 的意思,可以这样理解,androidx 代替了之前的一系列的 support 库。如果你选择了 androidx 就表示在你新创建的项目里面使用的支持库就是 androidx 了而不是之前我们用的 support 类型的支持库了。...原创 2020-03-13 18:11:57 · 368 阅读 · 0 评论 -
通过例子手撕架构模式
更多精品文章分类关于架构关于架构的概念很宽泛,不是一句 MVP、MVC、MVVM 就能说清楚的。一般开发软件的时候,我们是如何进行架构设计的呢?首先一个 APP 软件是一个大的系统,我们通常可以把这个大的系统划分为许多个小的模块,比如:登录注册功能,首页展示功能、个人信息功能等等某个具体的模块的功能。然后我们就可把这几个相对独立的模块分别划分给不同的人员进行开发。当然在进行模块划分前,...原创 2019-12-04 19:05:02 · 199 阅读 · 0 评论 -
一文彻底搞清楚 Material Design
一文彻底搞清楚 Material Design首先声明以下介绍的关于 Material Design 的介绍,都是基于在 Android 环境下,其实 Material Design 是一种为了让 UI 页面更加美观的设计规范,也可以按照这种规范应用到 iOS、Web 上。Material Design 是 Google 在 2014 年 I/O 大会上发布的一种新的设计规范。这种设计风格...原创 2019-11-15 18:24:15 · 520 阅读 · 0 评论 -
这些Android系统样式中的颜色属性你知道吗?
Android 系统样式中的颜色属性推荐阅读看完后彻底搞清楚Android中的 Attr 、 Style 、Theme几个常用的颜色属性先放上一张经典的图片,图片来自网络。这张图在网上很是流传,也不知道当初是哪位大神标注的,很好的说明了 Android 系统中的几个常用的颜色属性的作用范围。在开发者官网 R.attr 中给我们列出了所有的系统属性,我们可以在这里面找到对应的颜色属性所...原创 2019-11-06 18:17:26 · 351 阅读 · 0 评论 -
为什么AlertDialog要使用Builder来构建呢
为什么 AlertDialog 使用Builder 模式呢?首先说句废话,因为 AlertDialog 太过复杂,内部参数太多,然后不使用构建者模式那么 AlertDialog 的构造方法就可能是:AlertDialog(String title);AlertDialog(String message)AlertDialog(int resId)AlertDialog(int resI...原创 2019-11-05 08:48:16 · 256 阅读 · 0 评论 -
View 的绘制过程
配合Activity 从启动到布局绘制的简单分析 阅读基本概念介绍Activity:一个 Activity 是一个应用程序组件,提供一个屏幕,用户可以用来交互。View:所有视图控件的基类ViewGroup:View 的子类,是容器类控件,内部用于放置子ViewWindow:概况了 Android 窗口的基本属性和基本功能(抽象类)PhoneWindow:Window 的实现类...原创 2019-11-04 09:07:23 · 164 阅读 · 0 评论 -
观察者模式详解
本篇文章总结一下观察者模式,主要从以上几点介绍。概念介绍观察模式是我们在开发过程中经常遇到的一种设计模式,这里先来介绍一下概念。从字面意思上去理解,所谓的观察者模式,首先有观察者(一个或者多个),被观察者(一个)。当被观察者状态发生变化的时候,就会去通知它的所有的观察者,然后由观察者根据被观察者的情况作出反应。观察者模式属于行为型模式。在 Android 中的接口回调属于一种特殊的观察者...原创 2019-10-10 17:38:54 · 239 阅读 · 0 评论 -
从0系统学Android-2.5更多隐式Intent用法
本系列文章,参考《第一行代码》,作为个人笔记更多内容:更多精品文章分类从0系统学Android-2.5更多隐式Intent用法上一节中我们学习了通过隐式 Intent 来启动 Activity。实际上隐式 Intent 还有更多的内容。使用隐式 Intent 我们不仅可以启动自己程序内符合要求的Activity 还可以启动其他程序中符合要求的 Activity,这也使得 Android ...原创 2019-08-29 20:48:45 · 177 阅读 · 0 评论 -
从 View 的四个构造方法说起
View 类的四个构造函数写过自定义 View 的都知道,View 有四个构造函数,一般大家都知道第一个构造方法是简单的在代码中new View 的时候调用的,第二个构造方法使用最广泛,是对应的生成 xml 中定义的 View 的时候调用的。剩下的两个构造方法,大家了解的就比较少了。一般在自定义 View 的时候都会不加思索的按照固定的写法。那么你有没有想探究一下里面的关系呢?构造方法 ...原创 2019-08-28 20:53:35 · 854 阅读 · 1 评论 -
ListView详细介绍与使用
前言介绍:关于 ListView 我们大家都应该是非常的熟悉了,在 Android 开发中是经常用到的,今天就再来回顾一下,ListView 的使用方法,和一些需要优化注意的地方,还有日常开发过程中的一些小技巧和经验。ListView 简介ListView 是 Android 系统为我们提供的一种列表显示的一种控件,使用它可以用来显示我们常见的列表形式。继承自抽象类 AdapterView...原创 2019-08-27 17:45:16 · 9906 阅读 · 1 评论 -
从 http协议角度解析okhttp
Okhttp 介绍OkHttp 是 Square 公司开源的一款网络框架,封装了一个高性能的 http 请求库。支持 spdy、http2.0、websocket 等协议支持同步、异步请求封装了线程池,封装了数据转换,提高性能。在 Android 6.0 中自带的网络请求 API 的底层就是使用了 okhttp 来进行的使用 okhttp 比较接近真正的 HTTP 协议的框架其...原创 2019-08-08 21:21:04 · 714 阅读 · 0 评论 -
从0系统学Android-2.4隐式Intent
本系列文章,参考《第一行代码》,作为个人笔记更多内容:更多精品文章分类使用隐式 Intent相对于显示 Intent ,隐式 Intent 比较含蓄。这种方式不明确指出我们想要启动哪一个 Activity。而是定义了一系列更为抽象的 action 和 category 等信息。然后交给系统去分析这个 Intent ,并帮我们找出这个合适Activity。合适的 Activity 就是指的...原创 2019-07-24 22:41:32 · 169 阅读 · 0 评论 -
从0系统学Android-2.1Activity的使用
更多精品文章分类第二章:先从看的到的入手—Activity上一章成功创建了自己的第一个项目。这一章从页面入手,来进行学习。2.1 Activity 是什么Activity 是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用可以有零个或者多个 Activity。2.2 Activity 的基本用法自己手动创建一个没有 Activity 的新项目2.2.1 手动创建 Act...原创 2019-07-21 14:39:05 · 171 阅读 · 0 评论 -
从0系统学Android-1.4日志工具的使用
更多精品文章分类1.4 日志工具简单介绍一下日志工具,对以后的开发非常有用1.4.1 使用日志工具 LogLog 日志工具类提供了 5 个方法来供我们打印信息(级别逐渐提高)Log.v():级别最低,对应 verboseLog.d():打印调试信息,对应 debugLog.i():对应级别 infoLog.w():打印警告信息,对应级别 warnLog.e():打印错误信息,...原创 2019-07-21 11:49:16 · 172 阅读 · 0 评论 -
从0系统学Android--1.3创建你的第一个 Android 项目
文章目录1.3 创建你的第一个 Android 项目1.3.1 创建 HelloWorld 项目1.3.2 启动模拟器1.3.3 运行程序1.3.4 分析你的第一个 Android 程序1.3.5 详解项目中的资源1.3.6 详解 build.gradle 文件1.3 创建你的第一个 Android 项目环境搭建完成后,我们就可以写下我们的第一个项目了。1.3.1 创建 HelloWorld...原创 2019-07-20 22:43:36 · 233 阅读 · 0 评论 -
Android 蓝牙开发(3)——蓝牙的详细介绍
前面的两篇文章,主要是在 Android 官网关于蓝牙介绍的基础上加上自己的理解完成的。主要针对的是 Android 开发中的一些 API 的使用。第一篇文章 Android 蓝牙开发(1) 主要是介绍了普通的蓝牙在 Android 开发中的运用。第二篇文章 Android 蓝牙开发(2) 主要是介绍了低功耗蓝牙的开发。这篇文章主要介绍的是蓝牙的历史和一些关于蓝牙的通用知识,还有广播包的知识...原创 2019-07-10 23:16:33 · 517 阅读 · 0 评论 -
Android 蓝牙开发(2)——低功耗蓝牙
低功耗蓝牙官方文档本文章是参考官网,然后加入自己实践中的理解完成!没有看上一篇的读者,可以先阅读一下前一篇,这是一个系列。官网地址:https://developer.android.com/guide/topics/connectivity/bluetooth-leAndroid 4.3 (API 18 )引入了低功耗蓝牙,应用可以查询周围设备、查询设备的服务、传输信息。关键术语和概念...翻译 2019-07-09 23:15:53 · 262 阅读 · 0 评论 -
Android 蓝牙开发(1)
普通蓝牙设备官方文档Android 平台包含蓝牙网络堆栈支持,凭借此支持,设备能以无线方式与其他蓝牙设备交换数据。应用框架提供了通过 Android Bluetooth API 访问蓝牙功能的途径。使用 Bluetooth API Android 应用可以执行下面的操作:扫描其他蓝牙设备查询本地蓝牙适配器的配对蓝牙设备建立 RFCOMM 通道通过服务发现连接到其他设备与其他设备进行...翻译 2019-07-03 22:07:10 · 639 阅读 · 0 评论 -
解决 APP启动白屏黑屏问题
闪屏页简介闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟。其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动。为什么我的 APP 启动会白屏或者黑屏有时候我们会发现,我们在启动我们自己的 APP 的时候,总是有那么点时间是白屏(黑屏),经过了白屏(黑屏)后才会进入我们的 APP。那么这是为什么呢?模拟效果下面我们模拟一下白屏...原创 2019-05-23 17:55:32 · 454 阅读 · 0 评论 -
ViewStub的使用
今天写一下 ViewStub ,内容很简单!ViewStub 是一个不可见的,没有尺寸,不会绘制任何东西的布局。主要用于实现 View 的延迟加载,可以避免浪费资源,减少布局的绘画,只有需要的时候才会加载。在 ViewStub 加载完成后就会被移除,它所占用的空间就会被新的布局替换。还是来说一下具体的用法,比较清晰。用法// 在布局文件中,你就当做普通 View 使用即可<?xm...原创 2019-05-21 18:22:09 · 235 阅读 · 0 评论 -
Android 矢量图详解
官方文档关于 Vector,在官方开发指南中介绍。本文章是由个人翻译官方指南然后添加个人理解完成。由于个人精力有限,多个渠道发布,排版上可能会有问题,如果影响查看,请移步 Android 开发者家园Vector Drawables 概述VectorDrawable 和 AnimatedVectorDrawable 是在 Android 5.0 系统中第一次加入,当然我们可以使用 An...原创 2019-05-13 02:07:12 · 1230 阅读 · 0 评论 -
关于 Android 状态栏的适配总结
1.要求状态栏透明,我们的内容布局延伸到系统状态栏,就是人们口中说的沉浸式状态栏:Android 5.0 及其以后版本:设置属性 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 使得我们的内容布局可以延伸到系统状态栏,然后直接使用方法 setStatusBarColor() 把系统状态栏设置成透明就好了。Android 4.4 ~ Android 5.0 :添加了属...原创 2019-05-13 01:39:43 · 690 阅读 · 0 评论 -
关于 Android 中的各种 Bar 和“透明状态栏”的一些知识
此篇文章主要讲解关于沉浸式状态栏,程序全屏和分清状态栏、ActionBar、ToolBar 的一些知识内容。主要是讲解如何适配状态栏。关于 ActionBar 和 ToolBar 的使用没有细致讲解。文章最早发布于我的微信公众号 Android开发者家园 中本文为sydMobile原创文章,可以随意转载,但请务必注明出处!由于个人精力有限,多个渠道发布,排版可能会有问题。重点维护我的个...原创 2019-05-13 00:47:49 · 400 阅读 · 0 评论 -
Android 5.0 ripple 标签
在 5.0 后加入了 ripple 标签,使用这个 Drawable 做控件的背景,在点击的时候就可以达到 波浪的效果。ripple 标签对应的是一个 rippleDrawable ,当使用它作为背景的时候,在控件按下去的时候,就会显示水波效果。ripple 主要有两种形式没有边界的 ripple这种没有边界的 ripple 只需要设置 ripple color 属性就行了,不用给它添...原创 2018-12-28 17:50:56 · 421 阅读 · 0 评论 -
Android 学习路线
根据刚哥知识星球的独家 Android 学习路线,从入门开始一级一级的修炼,都会一一记录到这里。见证自己的一步步成长过程!持续更新Android 入门这个阶段的学习有两个重要误区:什么都想学太纠结细节这个阶段的学习,这两个误区很耽误时间,因为本事就是入门,入门你不可能搞得什么都清楚。先入门,有了知识积累。后面再逐步深入!ActivityAndroid 入门–Activity...原创 2018-12-23 19:07:02 · 616 阅读 · 0 评论 -
Android 入门--Activity
ActivityActivity 是什么简单的来说,一个 Activity 包含了用户可以看到的界面,用来和用户进行交互。一个应用程序中可以有零个或者多个 Activity。零个 Activity 的话就是,这个程序不包含与用户交互的界面。返回栈(任务栈)(任务)Android 是使用任务(Task)来管理 Activity 的。一个 Task 就是一组存放在栈里的 Activity 的集...原创 2018-12-23 18:36:51 · 285 阅读 · 0 评论 -
Android 中进程的级别以及 Service 的优先级
Android 中进程的级别以及 Service 的优先级由于在 bindService 启动 service 的时候需要传入 flag (可以看一下这篇文章)Service ,这里有介绍 flag 的作用,和启动的 Service 的优先级有关系,一般传入:BIND_AOUT_CREATE,这里我们需要了解一下 Android 中进程的优先级的情况。进程的五个常用级别:前台进程(For...原创 2018-12-20 21:17:46 · 753 阅读 · 0 评论 -
从源码分析 Android Button 点击效果
Android 点击效果我们平时在开发过程中都可能注意到,我们写的默认的 Button 都是有点击效果的,而且大小也有默认规定的,而 TextView 就没有。就想下面的图片一样。是有默认效果的。通过查看 Button 的源码我们看到:每个 button 有系统默认的风格样式,就是这里的风格样式,使得我们的 button 有了这种效果。下面我们来看看系统默认的 button 风格(注意...原创 2018-12-19 21:24:27 · 378 阅读 · 0 评论 -
Android Service 详解
Android Service 详解(上)Service 作为 Android 的四大组件还是很有必要好好掌握一下的!Service 生命周期先从 Service 生命周期看起,Service 的生命周期比较有趣的一点是,它的生命周期会根据调用不同的方法启动有不同的表现,具体有两种形式。通过 startService(Intent intent) 启动 Service生命周期是这样的...原创 2018-12-18 21:09:16 · 431 阅读 · 0 评论 -
Android 反编译使用
大家一说到反编译可能脑海中会首先想到不好的一面,破解别人的 APK 之类的。其实大可不必这么想。商业级别的 APK 也没有那么容易被你钻漏洞。一些核心的业务处理会在后台进行操作。本地的 APK 也会进行混淆加密等。所以我们进行反编译主要还是进行学习,看看别人怎么实现的,自己有个思路而已。关于这方面的资料,网上也有很多,这里就简单说一下过程,达到能够使用的目的!这里介绍两种方式:1.在线反编译...原创 2018-12-12 18:39:58 · 219 阅读 · 0 评论 -
Activity 从启动到布局绘制的简单分析
这篇文章主要是配合源码简单的介绍一下,程序的加载过程,Activity 中布局的加载过程,能够大体的了解整个过程。不过过度的追究细节,因为里面任何一个细节可能都够你研究一段时间的!先了解掌握大体过程,再慢慢来!文章最早发布于我的微信公众号 Android开发者家园 中,欢迎大家扫描下面二维码关注微信公众获取更多知识内容。本文为sydMobile原创文章,可以随意转载,但请务必注明出处!...原创 2018-12-10 15:58:09 · 465 阅读 · 0 评论 -
Android 网络请求原理以及原始数据包
我们在请求网络的时候都是使用各种框架,或者是 Android SDK 为我们提供的网络请求类。但是你知不知道原始的网络请求包是什么样的呢?或许你说这有什么作用,我会使用框架就好了。很显然,这种想法是有问题的。一些网络请求的基本知识我们还是需要掌握的。这对我们更深入的开发和掌握更深的技术是非常有必要的。关于 HTTP 请求报文和响应报文的格式这里就不再过多介绍了,简单说,HTTP 协议是以 ASC...原创 2018-11-01 17:53:17 · 1311 阅读 · 0 评论 -
Dialog 宽度占满全屏
Dialog 宽度占据全屏关于如何自定义设置 Dialog 的大小,以及如何让宽度占满整个屏幕,其实是一个老生常谈的内容了,特别是对于很多新手来说。关于这方面的内容网上一搜一大把。我也看了一下,大多数是互相抄袭。来来回回就是那么几句代码。真实的运行结果往往并不是占满屏幕。这篇文章是把很多常见的情况都举例了。我们先看 Dialog 占满屏的效果,好了下面一步一步看,如果不想看过程可以直接跳过看总结...原创 2018-10-31 18:41:54 · 6705 阅读 · 4 评论