自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android Studio GitHub登录问题

常见报错一常见报错二解决方案: setting ->Tasks ->Servers -> "+"(找到GitHub) ->输入自己账号信息 ->Test OK!!

2021-04-01 11:06:28 608 2

原创 Android面试之Handler机制从使用到源码解析

从使用到源码详解handler、message、MessageQueue、Looper

2021-01-04 18:12:57 146

原创 Android面试之网络协议篇

一、TCP/IP1、概念TCP/IP是网络通讯协议族,即网络通讯协议总称。TCP、UDP、IP、FTP、SMTP、HTTP等都属于TCP/IP族内的协议。2、TCP/IP四层体系结构模型TCP/IP概念层模型 主要协议 功能 应用层 FTP、SMTP、HTTP 接收传输层的数据、按照应用要求将数据传输至传输层 传输层 TCP...

2020-06-27 22:37:19 798

原创 Android面试之数据结构篇

一、常用的数据结构数组(Array)、链表(Linked List)、堆(Heap)、栈(Stack)、队列(Queue)、树(Tree)、图(Graph)、散列表(Hash)数组:有限个相同类型的数据的有序的集合。特点:优点 1、按照下标查询,查询速度快。 2、按照下标遍历方便。 缺点 1、插入一个其它的需要移动位置,故而插入慢。 2、数据类型单一。链表:物理存储...

2020-06-26 09:51:07 398

原创 Android Lifecycle的一些感悟

本文不是介绍Lifecycle,而是对Android对于Lifecycle设计的一些感悟,觉得可以在自己应用的开发中借鉴。下面先看源码对Lifecycle的使用,主要涉及两个类,一个是Activity,另一个是fragment(毕竟我们要监听页面的生命周期无非也是从这二者下手)。先看fragment中怎么处理的1、fragment实现LifecycleOwner接口。2、创建一个全局L...

2019-11-29 17:55:20 292

原创 Android kotlin DataBinding 之 unresolved reference: BR 坑

kotlin实现MVVM框架之使用DataBinding之unresolved reference: BR解决办法由于目前kotlin开发的插件不支持跨module,所以databinding在使用apt技术BR文件时的引用没发确定目录,故造成unresolved reference:BR,那么需要kapt完成,配置如下app下build.gradleapply plugin: 'k...

2019-11-05 10:42:56 6889 2

原创 Flutter学习笔记(六)Flutter与原生的互相通信

我们既然使用Flutter作为UI技术框架,那么就少不了跟原生的通信(Android或者ios,方式类似,本文以Android为例)。Flutter SDK中给我们提供了三个API,分别是MethodChannel、BasicMessageChannel、EventChannel。1、MethodChannel异步方法调用的方式使Flutter与原生相互通信。 1.1 Fl...

2019-10-29 16:43:41 929

原创 Flutter学习笔记(五)页面跳转与数据传递

主要记录在Flutter中如何实现类似Android中Activity间跳转与数据传递的过程。Flutter中一切皆Widget,所以页面的跳转也是从一个widget到另一个widget的过程。这里将引入两个概念导航(Navigator),路由(Route),页面的跳转及管理就是靠这两个完成的。1、页面跳转Navigator.push方法传递route实现,具体如下按钮的点击事...

2019-10-26 15:38:06 463

原创 Flutter学习笔记(四)网络请求

先从最基本的自带的网络请求API讲起,后续再记录一些第三方的开源框架。先简单介绍一下Future这个类。Future:是一个延迟计算的对象,也就是异步操作处理对象。async:表示异步。await:异步结果接收。以上整体简单使用如下接下来写一个完整的网络请求返回结果是一个Future对象,下面看调用这就是一个完整的网络请求过程,从future异步请求到h...

2019-10-25 16:47:39 130

原创 Flutter学习笔记(二)项目结构及配置

介绍一下flutter工程项目结构及开发配置。以Android Studio为编辑工具,如图1、android:这个目录是提供Android原生开发,里面内容不再赘述了。2、assets:定义存放资源的文件目录(名字不固定),如:图片、json数据文件等,也可以定义多个目录,如pwe,但是必须在pubspec.yaml文件中配置,具体配置在讲pubspec.yaml文件时再细说。3...

2019-10-24 19:21:24 213

原创 Flutter学习笔记(二)Dart基础语法

Dart对从事Android开发的小伙伴有了Java、Kotlin基础之后就很好理解了,这里主要也是记录一些跟Java、Kotlin等其他语言有很大区别的地方。1、类似Kotlin的文件形式文件名和类名不一定一致,比如创建:test.dart。然后可以在这文件里创建很多类,如:class Test1、class Test2等。2、变量 2.1 不指定类型的声明变量,类似Kotl...

2019-10-23 17:50:28 182

原创 Flutter学习笔记(一)环境搭建

我是从事Android开发的,所以这里以Android为主。Flutter跟Android一样也是需要下载SDK并配置环境变量的,下面分步骤。1、下载Flutter SDK上flutter官网下载最新Beta版本https://flutter.dev/docs/development/tools/sdk/releases下载之后解压到自己的目录,如:D:\flutter。...

2019-10-23 14:41:55 159

原创 Flutter学习笔记(二)Dart基础语法之extends、implements、with关键字

1、extendsDart和Java一样使用extends继承父类,使用implements实现接口。子类Boy可以调用父类Person的eat方法了。2、implements在Dart中不存在interface类,即可以说不存在接口这么一说,那么是怎么体现implements呢。同样的代码,把extends改成implements之后,在Boy类里就必须实现eat方法...

2019-10-18 15:56:50 1579

原创 Flutter学习笔记(三)常用Widget

一、BasicStack堆栈小部件,位于basic里,子部件按照从左上角重叠排列,类似Android中的FrameLayout。使用Stack,您可以将小部件彼此放置在一起。Stack( children: <Widget>[ Container( width: 100, height: 100,...

2019-10-15 20:49:29 113

原创 Android ADB: connect error for write: more than one device/emulator

执行adb命令时,提示adb: connect error for write: more than one device/emulator。这是你连接了多个设备或者模拟器,执行adb devices发现确实有多个指定设备执行命令即可,如adb -s emulator-5554 install test.apk...

2019-10-11 15:08:09 800

原创 Android RxJava之操作符

最近参照文档对RxJava一系列操作符作了一下理解。一、创建类操作符1、Create创建一个Observable,返回一个emitter(发射器),手动调用onNext(),onError(),onComplete()方法。2、from Array,Just创建一个将要发出的一个或一组对象的Observable,会自行调用onNext(),onComplete方法。Just...

2019-09-27 13:30:13 346

原创 Android studio git提交忽略设置

Android开发中Android studio、git是通用的开发即代码管理工具。在开发过程中往往有一些不熟悉git或者粗心大意的开发者容易代码一键commit一键push,完全没有看哪些需要传哪些不能传,导致其他同事pull代码下来各种问题。所以配置git文件忽略很重要!!1、配置gitgnore文件这样idea目录文件就不会被传上去了,但是有些人是push到git之后才发现,才做...

2019-09-24 20:10:28 905

原创 Android面试之插件化开发

前面谈到了Hook技术,那么今天来说说Hook的应用场景之一插件化开发技术。为什么要插件化?插件化的好处有什么?为了业务灵活解耦,减小apk的体积,方便各业务开发管理以及更新维护,同时也为了避免65535问题,我们需要插件化。那么插件化是怎么的一个流程?首先,用户会安装我们的app,这里叫做宿主apk,然后当用户点击使用某个业务功能时,我们就可以从我们的服务器端下载对应的插件apk...

2019-08-15 15:07:02 922

原创 Android面试之Hook技术

学习Hook之前请先多了解framework层的相关知识,反射技术,代理模式。这里不会详解!一、Hook技术Hook与其说是钩子,说它是劫持器更贴切,它的作用就是“欺上瞒下”。主要分两类:Hook Java,也即应用程序进程Hook,通过反射和代理实现;Hook Native,为全局Hook,通过第三方框架完成,如Xposed。通过图更能形象表述。二、Hook技术举例插件化技术...

2019-08-13 15:48:13 391

原创 Android面试之ClassLoader

简单记录,方便记忆。前面讲完JVM、Dalvik、ART,与这里的ClassLoader息息相关。一、Java中的ClassLoaderBootstrapClassLoader(引导类加载器):c/c++实现的根加载器,加载目录为:$JAVA_HOME/lib。ExtensionsClassLoader(拓展类加载器):加载目录为:$JAVA_HOME/lib/ext/。App...

2019-08-08 20:16:35 386

原创 Android面试之Dalvik和ART

简单记录,方便记忆。一、Dalvik针对Android系统面向Linux设计的虚拟机,每一个应用进都程拥有一个独立的Dalvik实例,每一个Dalvik实例都运行在一个独立的进程空间中,所以不会某个Dalvik虚拟机崩溃导致所有程序都关闭。此图分析很好,借鉴1、Dalvik与Java虚拟机区别1)基于架构不同:Dalvik虚拟机基于寄存器架构;Java虚拟机基于栈架构。2)执行字...

2019-08-01 15:56:19 407

原创 Android面试之Java虚拟机

简单总结一下,方便记忆。一、概念Java虚拟机可以看作是一个抽象的计算机,有自己的指令集和各种数据区。为class文件提供编译运行的环境,不管何种语言(java、kotlin等)只要能编译成class文件都能适用。二、类的加载:加载、验证、准备、解析、初始化、使用、卸载引导类加载器(Bootstrap ClassLoader):启动类加载器,负责将存放在<JAVA_HOM...

2019-08-01 13:20:21 221

原创 Android模块化之组件间通信

结构描述部分Android组件化的文章网上一搜一大推,基本上大同小异,在这里我就不再细说了。今天我主要是将我之前根据微信的架构思路的重构经验做个记录(微信Android模块化架构重构实践),这里我也主要是说组件间通信。先讲一下我的重构目标:按照大方向的业务功能分模块,我想让我的app是由多个独立的小系统似的组成,系统间不共用业务代码完全解耦。比如我的app有主页、发现、我的三个业务模块(这...

2019-07-31 11:23:45 567

原创 Android深入解析WindowManager

WindowManager体系关系 我们这里从Window(这里Window是个抽象概念)开始了解WindowManager,这些window都会与WindowManager建立关联,比如Activity、Toast、Dialog、PopupWindow等。Activity中PopupWindow中那么这个WindowManager为何有如此大作用呢...

2019-07-26 15:07:19 238

原创 Android日志输出为何使用Log而不用System.out?

1、Log是Android提供的打印日志的工具类,可以根据自己需求设置打印级别,设置过滤标签。System.out是Java提供的输出类,相比之下Log甚是方便。2、Log调的是native层C语言(具体看android_util_Log.cpp),而System.out是Java语言,我们知道C的执行效率要比Java高,我们Android开发对效率更是看重,所以建议尽量要使用Log。通过...

2019-07-05 15:13:51 1229

原创 Fragment源码解析

Fragment源码解析我们在分析任何源码时都是从根开始追溯,那么我们在分析Fragment时就从getFragmentManager()开始FragmentManager分析接下来看FragmentManagerImpl类FragmentManagerImpl是继承FragmentManager的。然后我们看到操作Fragment的方法都是在BackStackRecord...

2019-06-17 14:41:04 476

原创 Activity、Window及View关系

Activity、Window及View之间的关系 我们在研究Android中Activity和PhoneWindow(它是Window的子类)及DecorView(根级View)之间的关系时,其实时从Activity.setContentView()入手。我们知道在Activity.attach中创建了唯一对应的PhoneWindow类,此时建立了Activity与Pho...

2019-06-15 11:12:03 219

原创 Android开发的安全性(面试)

只要项目经历中有涉及安全性的应用或者面试的公司项目中比较重视安全性的话基本都会被问及安全方面的问题,那么下面就这些问题做个记录。 1、软键盘输入安全:自定义软键盘,随机按键,并且对输出作加密处理。 2、防界面劫持:有敏感信息录入的界面,有可能会出现被钓鱼,出现一模一样的界面覆盖于咱们的应用之上,导致用户误输入敏感信息,出现安全问题,那么我们要做的就是在应用退出...

2019-06-03 16:45:41 970

原创 Android开发过程中Java基础知识一些注意点

Android是基于Java语言开发的,平时我们开发过程中可能某些细节没有注意到,虽然这没有太大的影响,但是现在追求的是要开发出高性能的app,所以作为一名高级开发人员的我们要开始注重基础细节,下面就我个人觉得常见的做此记录,后续更新一、volatile使用对于初级工程师或者Java基础比较差的工程师来说,实现单利会如下实现那么这样的话就会出现线程安全问题,我们就会写同步锁双重检查...

2019-06-03 16:43:01 231

原创 Android RecyclerView适配器简单封装,使用方便、简洁

最近不是很忙写点东西,一来自己笔记,二来跟大家分享我们在做项目的时候为了方便常常会引入一些开源的框架,但是本人觉得有些框架功能太多或者太过复杂,不利于自己项目维护或者杀鸡用牛刀。我本人还是比较热衷于使用系统原生的方式来实现,但也要适当的进行封装。下面讲我对RecyclerView的简单使用封装分享给大家。直接上代码吧!!1、定义的adapter基类package com.app.ba...

2019-03-07 14:18:25 903

原创 Android Error inflating class android.webkit.WebView

遇到的一个小坑,记录一下1、问题原因,直接看下图网上有资料说在manifest的Application下面添加&lt;meta-data android:name="android.webkit.WebView.EnableSafeBrowsing" android:value="true"/&gt;就能解决问题,跟着试了,没起作用。2、解决问题下载Android System WebView ...

2018-05-31 14:50:08 10721 1

原创 Android emoji表情处理

在开发中很多后台数据库不支持emoji表情插入,那么需要我们在EditText结果输出时过滤掉。同样emoji表情也是有着对应的Unicode,相关参考Emoji Unicode Tables  下面我就针对它的几个区来实现我们的过滤。通过自定义InputFilter过滤器来实现,代码如下import android.text.InputFilter;import android.text.Sp...

2018-05-19 10:30:09 2369

原创 Android 开发过程中的异常奔溃处理

开发过程中捕获异常并定位问题解决问题是基本之一,当然也有很多第三方的平台,比如接入友盟统计、第三方加固(比如360加固等)、腾讯Bugly等都会为我们收集到异常日志。但是,我个人认为开发及测试过程中编写一个Crash收集工具类尤为重要。下面分享一下我的crash处理。直接上代码吧,定义一个CrashHandler工具类import android.content.Context;import ...

2018-05-18 10:53:01 506

module-api.zip

个人根据阅读微信模块化架构实践整理的一个组件间通信的demo,抛开了不好维护的eventbus框架。

2019-07-31

Android音频录制

支持开始、暂停、继续录制等操作的音频录制器。纯原生代码,不使用任何第三方库,好用简单,分享予大家!!!

2018-08-22

帶索引ListView,手機聯係人列表

仿微信聯係人輕量級帶索引ListView,不適用第三方庫,使用簡單方便。

2018-05-16

空空如也

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

TA关注的人

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