自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Android 源码笔记(持续更新:2021年3月9日)

记录AOSP中各个目录的作用和文件的作用目录篇文件篇

2020-10-20 09:36:21 264

原创 一张图读懂OkHttp

主要内容理解OKHttp和Http的关系了解OkHttp的使用理解OkHttp的宏观设计源码示例class OkHttpActivity : AppCompatActivity() { val TAG = "OkHttpActivity" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.

2021-09-21 18:48:06 154

原创 一张图读懂Retrofit

如何读源码三部曲:寻找切入点,带着将源码整体化,结构化的意识,开始阅读从切入点开始将代码一小步一小步的进行模块化的记忆遇到无法切入时,可以先切换到另一个小模块进行挖掘建议的切入点:使用中最接近逻辑开始的地方。如网络请求框架的开始请求的地方:retrofit2.Call.enqueue阅读的过程中,时刻保持将代码尽心体系化,完整化的意识每次将小模块完成之后,再进行下一个小块的完善,直到心中有一个完整的整体模块时刻保持一个明确的目的进行阅读阅读的过程中可能会出现需要纵向深入和横

2021-09-21 09:04:56 180

原创 Android Studio 同步配置(Settings)到GIt服务器

同步到码云创建私有仓库,如下图 2. 复制SSH地址到Android Studio的导出配置中如下:同步到自己的Git服务器第二步同步到自己的Git服务器搭建方式就不说了,自行百度。同步步骤如下:创建Git仓库:git init --bare(如下图创建了一个临时仓库用于演示)同步配置,URL的格式(ssh://用户@域名:端口/路径),比如我图中的就是如下URL:ssh://jason@www.xxx.com:22/mnt/source/repositories/temp开始使用

2021-05-18 11:12:53 422

原创 Android DataBinding 笔记四

这篇笔记主要记录绑定适配器和双向绑定的基本用法,这篇文章会包含完整的代码和运行效果。绑定适配器绑定适配器的作用就是给布局文件(xml)和特定方法之间起到相互绑定的作用的注解。 如下示例(其中invertColorBackground这个app的前缀是可以省略的,而且不省略AndroidStudio还会报警告:Application namespace for attribute app:colorValue will be ignored.):@BindingAdapter("invertColorB

2021-04-01 17:20:19 295

原创 Android DataBinding 笔记三

这篇笔记主要记录常见的应用场景和一些基础知识点Activity和Fragment之间的交互(它们都有使用DataBinding)定义自动生成的绑定类的名称和ViewStub的搭配方法View的ID会在绑定类中自动生成控件的成员变量Activity视图内包含Fragment和ViewStub在Activity中包含Fragment和ViewStub是很常见的操作,然而DataBinding可以让他们之间的关联代码减少很多。下面的代码用来演示他们之间通过DataBinding是如何来进行交互的。

2021-04-01 17:18:59 184

原创 Android DataBinding 笔记二

这篇用来介绍可被观察的数据,用来实现界面当数据改变时自动更新。可被观察的数据参考官网:使用可观察的数据对象。基础的可被观察的数据:ObservableBooleanObservableCharObservableShort等等……都是继承自androidx.databinding.BaseObservable,看下核心源码:public class BaseObservable implements Observable { private transient PropertyCh

2021-04-01 17:16:53 466

原创 Android DataBinding 笔记一

官网介绍,DataBinding是用于将数据的和视图绑定在一起的支持库,特点是只需要在视图定义的xml中编写绑定信息,减少在代码中的视图于数据的交互逻辑。这样可以分离数据和视图,减少这两个模块在代码层面上的耦合。启用功能在项目的build.gradle中添加如下代码即可:android { ... dataBinding { enabled = true }}常见问题:DSL element ‘android.dataBinding.enabled’

2021-04-01 17:13:14 1268

原创 各版本 Android 的 SettingsProvider 数据保存位置

Android 6.0之前的所在位置:data/data/com.android.providers.settings/databasesAndroid 6.0之后的所在位置:/data/system/users/userid/settings_[system|global|secure].xml一共三个xml文件用来存储系统设置。参考:https://stackoverflow.com/questions/51466177/where-is-the-sqlite-database-that-h

2021-03-25 14:26:31 1010

原创 Android Hilt 笔记

官网介绍已经讲解的非常详细了,这里就不做过多的介绍,只是记录下核心的思想和步骤,让应用可以跑起来,并且用到核心的依赖注入功能。(建议不要使用Hilt,去用Koin,Koin比这个Hilt好用太多了,简洁明了。参考:Kotlin替换Dagger2/Hilt的依赖注入框架–Koin)浅谈依赖注入依赖注入是控制反转的一种实现方式,目的是:分离创建这个类的代码和使用这个类的代码分离创建这个类的代码和使用这个类的代码分离创建这个类的代码和使用这个类的代码。为什么要分离呢?因为:一个类有特别多的依赖时,创建依赖的

2021-03-11 14:11:11 411

原创 Android APK 反编译的基本工具和步骤

准备材料dex2jar Android .dex 文件和Java的.class文件的转换ApkTool 反编译APK工具Luyten 是Java反编译工具(procyon的GUI)反编译步骤用ApkTool反编译APK到指定目录:

2021-03-06 17:14:49 1261

原创 Android Studio Skills

Inotify Watches Limithttps://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+LimitAdd the following line to either /etc/sysctl.conf file or a new *.conf file (e.g. idea.conf) under /etc/sysctl.d/ directory:fs.inotify.max_user_watches = 524288

2020-12-18 21:55:32 139 1

原创 Android 常见解决方案记录

LinearLayout android:layout_weight=“1"失效方案一:参考——ScrollView中layout_weight无效在 ScrollView中设置 android:fillViewport=“true”方案二:layout_weight=“1"下面的控件需要确定的宽高,如android:layout_height=“59dp”android:layout_height=”@dimen/height”...

2020-12-12 17:38:15 134

原创 Android BLE 知识点

android蓝牙BLE 简书总结:android蓝牙BLE(一) —— 扫描android蓝牙BLE(二) —— 通信android蓝牙BLE(三) —— 广播android蓝牙BLE(四) —— 实战android蓝牙BLE 问题总结:Android BLE4.+ 蓝牙开发国产手机兼容性解决方案android蓝牙BLE 知识点总结:Bluetooth BR/EDR和BLE的区别...

2020-12-11 10:15:43 233

原创 AndroidStudio配置Gradle的阿里云效仓库

参考:https://www.cnblogs.com/bluestorm/p/12466860.html阿里云效官网:https://maven.aliyun.com/mvn/guide阿里源Maven配置官网指导:https://developer.aliyun.com/mirror/maven?spm=a2c6h.13651102.0.0.3e221b11EoKnus我的配置: maven { url 'https://maven.aliyun.com/repository/

2020-12-10 14:53:08 643

原创 图解MVC、MVP和MVVM,简单对比

角色对比模式角色作用模式角色作用模式角色作用MVCModel保存数据MVPModel保存数据MVVMModel保存数据-View用户界面-View用户界面-View用户界面-Controller业务逻辑-Presenter业务逻辑-ViewModel数据绑定从上表可知基本所有的模式,都是为了隔离数据、界面和业务逻辑,这三个部分。交互对比参考文章阮一峰的网络日志——MVC,MVP 和 MVVM 的图示

2020-10-30 21:16:50 153

原创 AOSP多个桌面应用,设置默认桌面,刷机第一次不提示选择默认桌面

思路系统有多个桌面应用时,第一次刷机开机会弹出选择桌面的对话框。只需要直接跳过选择流程并选中目标应用即可。实现相关文件frameworks/base/core/java/com/android/internal/app/ResolverActivity.java(选择默认桌面的界面)参考链接:https://blog.csdn.net/wxd_csdn_2016/article/details/87708307添加此函数,到frameworks/base/core/java/com/andr

2020-10-09 17:06:37 619

原创 在AOSP中添加jar包和aar包依赖

在AOSP中添加jar包和aar包依赖Android源码中添加jar的方式比较简单,参考telephony-common.jar的手法,关键两步ifneq ($(TARGET_BUILD_PDK), true)LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/src/javaLOCAL_SRC_FILES := $(call all-java-files-under,

2020-09-30 15:26:39 1396 4

原创 Windows10 同步AOSP 2018年

百度经验,参考: https://jingyan.baidu.com/article/597a064325b92c312b5243a4.html准备材料:1. cygwin: 具体有如何安装,和需要哪些操作参考百度经验, a. 如果出现cynwin的下载站点为空的情况,请自己到 https://cygwin.com/mirrors.html 这个网站选择一个可以访问的链接下载,...

2018-08-24 22:38:14 1075

原创 Android应用内增量更新

Android 增量更新实现原本来腾讯课堂中了解到了一些关于增量更新的知识 - 手机端实现 - 服务端实现

2018-08-21 15:57:54 301

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除