分享
xiao哥哥998
研一学生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android Connectivity学习笔记–Bluetooth
Android Connectivity学习笔记–Bluetooth1. 应用场景设备近距离传递数据的一种方式,无需通过网络连接,节省流量数据交换方便,理论上可传输任意类型数据2. 使用流程(1) 权限声明首先必须打开的是android.permission.BLUETOOTH权限,如果同时要将此应用做服务端使用(即监听客户端的连接),则同时应打开android.permission.BLUETOOTH_ADMIN权限(一般应用都需要实现这个功能),如下:<uses-permissi原创 2020-06-17 22:24:47 · 721 阅读 · 1 评论 -
Android架构组件--App Startup学习笔记
Android架构组件–App Startup1.解决的问题一般需要初始化的sdk都会对外提供一个初始化方法供外界调用,如:public class App extends Application { @Override public void onCreate() { super.onCreate(); Sdk1.init(this); }}对调用者很不友好。另一种做法是使用ContentProvider初始化,如下:public c原创 2020-06-13 00:14:44 · 10038 阅读 · 6 评论 -
命名实体识别(NER)学习笔记
参考《python自然语言处理实战》命名实体识别(Named Entities Recognition,NER)是自然语言处理中的一个基础任务。主要分为实体类、事件类、数字类三大类和人名、地名、机构名、时间、日期、货币、百分比等小类。NER比较侧重召回率,即需要最大限度的找出给定句子中所有的命名实体。和分词一样,NER主要方法也分为三类,基于规则的、基于统计的、规则和统计相结合的方法。序列标注...原创 2020-02-23 14:00:25 · 1137 阅读 · 0 评论 -
中文分词技术笔记
参考《python自然语言处理实战核心技术与算法》分词是自然语言处理的一项核心技术。中文分词算法大致分为三类,基于规则的分词算法、基于统计的分词算法、两者结合的分词算法。一、基于规则的分词算法基于规则的分词算法核心思想是维护一个词表,收录所有可能词,分词时拿待切分的字符串和此表中的词逐一查询匹配。找到则切分出来,没找到则不切分。这种方法简单高效,便于理解,但是维护词表是一个很庞大的工程,而...原创 2020-02-13 21:04:11 · 605 阅读 · 0 评论 -
Android LayoutInflater工作流程
Android LayoutInflater工作流程我们在Fragment的onCreateView方法中需要返回这个fragment的view,通常我们这样写这样就可以从xml布局文件中解析出来view。那么inflate()方法的具体流程是什么样的呢?首先看一下方法的定义,这个方法定义在在源码的LayoutInflater.java中,流程如下:public View inflate...原创 2019-09-16 23:25:06 · 406 阅读 · 0 评论 -
EventBus使用及源码分析
EventBus使用及源码分析EventBus是为Android和Java设计的事件总线框架,主要为了实现组件间的通信。一、 简单使用官方文档有详细的使用说明。最简单的使用包括三个步骤:定义事件类,如:public static class MessageEvent { /* Additional fields if needed */ }监听事件:@Subscribepubl...原创 2019-09-06 00:14:58 · 406 阅读 · 0 评论 -
Class文件结构 学习笔记
参考《深入理解Java虚拟机》Class文件结构 学习笔记一、 class文件产生.java文件经javac编译生成.class文件,才能被虚拟机解析运行,class文件是一组以8位字节为基础单位的二进制流,所以称为字节码。二、 class文件结构1. 整体结构class文件采用类似C语言的结构体格式存储数据。只有两种类型:无符号整数、表。无符号整数u1、u2、u4、u8等通常用来描述...原创 2019-08-31 02:01:54 · 299 阅读 · 0 评论 -
GC 学习笔记
GC 学习笔记参考《深入理解Java虚拟机》一、对象是否存活主流的虚拟机通过“可达性分析”算法判断一个对象是否存活,从而回收死亡的对象的内存空间。算法从“GC Roots”中的对象出发查看所有的引用链,如果一个对象到“GC Roots”没有任何一个引用链,那么就判定这个对象不可达,可以回收。可以作为“GC Roots”的对象有:虚拟机栈引用的对象、方法区中静态属性引用的变量、方法区常量应用...原创 2019-08-30 17:13:27 · 193 阅读 · 0 评论 -
Android实时监听网络状态
Android实时监听网络状态Android手机在网络状态发生变化时会发出一条包含网络状态的广播("android.net.conn.CONNECTIVITY_CHANGE"),通过接收该广播可以实时监听网络状态,并在不同状态下执行相应的回调。我们可以做一个简单的封装以方便使用。首先是状态回调IOnNetworkStateChangedListener.java:/** * 对外接口,网络...原创 2019-08-21 01:56:36 · 1413 阅读 · 1 评论 -
简单封装RxBus
封装Rxbus在组件化的工程中,不同组件通常位于不同的模块中,实现组件间的通信有多种方案,最常用的是Eventbus,但是如果项目中有使用Rxjava的话,我们可以使用RxJava的响应式编程替换掉Eventbus,接下来我们将逐步探索RxBus的封装。1. 单一的订阅关系首先看一种错误的封装,如下:public class RxBus { private static vola...原创 2019-08-08 17:47:25 · 454 阅读 · 0 评论 -
Android IPC机制笔记
参考《Android开发艺术探索》一、 IPC简介IPC含义为跨进程通信,通常不同的APP运行在不同的进程中,当两个app需要交互时,就要跨进程进行通信;或者一个app开了多个进程,大部分情况下也是需要跨进程通信的。IPC有多种方式实现,有Bundle、文件共享、Messenger、AIDL、ContentProvider、Socket等。首先是IPC的基础部分二、IPC基础1.开启多...原创 2019-07-18 18:32:47 · 277 阅读 · 0 评论 -
Android端的图文混排
Android端的图文混排一、效果图二、主要功能基于html,可解析大部分html标签可添加自定义标签及其解析可自定义图片和链接的点击事件全部接口都有默认实现,采用链式调用,简介清晰(使用过Glide和RxJava的都懂)三、快速使用1.在工程根目录的build.gradle中添加依赖allprojects { repositories { goog...原创 2019-07-15 21:14:41 · 1564 阅读 · 3 评论 -
RecyclerView异步加载图片
RecyclerView异步加载图片如何在不使用第三方图片加载框架的基础上实现RecyclerView和ListView的中实现异步加载图片功能?简单的方法是我们可以使用LruCache+AsyncTask结合的方式实现。大致思路是在onBindViewHolder()方法中根据key去内存缓存中对应的bitmap,如果找到了就直接显示,如果没有找到就开启一个异步任务去下载这个bitmap,下...原创 2019-05-30 23:02:47 · 3424 阅读 · 0 评论 -
LocalBroadcast的使用及简单分析
LocalBroadcast的使用及简单分析一、LocalBroadcast常用使用方式BroadcastReceiver(广播接收器)是Android的四大组件之一,可作为事件和数据传递的一种方式,支持一对多。广播主要有全局广播和本地广播之分。相较于全局广播,本地广播只在应用内传递数据,因此更加安全、高效。简单的使用方法如下:public class MainActivity extend...原创 2019-05-26 23:02:42 · 3275 阅读 · 1 评论 -
Handler的使用及简单分析
Handler的使用及简单分析一、Handler常用场景及使用方式Handler在经常用在线程间通信上,是Android中常用的异步消息处理机制。线程通信通常是主线程与子线程通信或者子线程之间互相通信,主线程与子线程之间通信又包括主线程向子线程发消息和子线程向主线程发消息。常用的写法如下:1.子线程发消息至主线程通常我们在子线程中进行耗时操作,比如耗时的计算、网络操作等,得到的结果通常需要...原创 2019-05-25 18:35:02 · 265 阅读 · 1 评论 -
仿知乎可拖动悬停按钮
仿知乎可拖动悬停按钮效果如下:实现的主要功能有:随手拖动响应点击事件全屏拖动,也可以限定位置可通过xml配置颜色和内部样式使用方法1.可以直接复制TrackView.java到自己的工程中。也可以下载trackview.aar放在libs包中,并在build.gradle中添加依赖使用2.在xml中配置属性(如果是复制的需要改成自己的包名,属性有默认值,也可以配置)<...原创 2019-05-11 23:43:13 · 1112 阅读 · 2 评论 -
封装一个实用的Android请求数据的工具类
在app开发过程中,我们经常需要从网络拉取数据然后在界面上显示,如果每次显示都从网络上请求数据,不仅会浪费流量,而且还会影响性能,一般我们会在本地缓存一份,当更新ui时有限从本地拿数据,手动更新时再从网络请求数据。这里分享一个使用Rxjava2实现的请求数据的工具类public abstract class QueryDataHelper<T> { /** * 请...原创 2019-03-22 21:08:06 · 505 阅读 · 0 评论 -
解决Android studio 出现Warning: Default Activity not found的方法
出现Warning: Default Activity not found是因为上一次强制退出导致as存储配置出错,解决方法:1.关闭as2.去安装路径找到AndroidStudio3.3 -> system -> caches3.删除caches这个文件夹4.重启as就可以了...原创 2019-03-12 20:55:20 · 6749 阅读 · 19 评论 -
tabLayout结合viewPager使用时tabLayout不显示
tabLayout结合viewPager使用时tabLayout不显示问题解决方案一般tabLayout结合viewPager使用的代码都是这样写的public class MainActivity extends AppCompatActivity { private static final String TAG ="MainActivity" ; List<MyFr...原创 2019-03-11 18:00:45 · 853 阅读 · 0 评论
分享