Android
文章平均质量分 90
秦汉春秋
“绝大多数人生活在一种平静的绝望之中”——梭罗
展开
-
Android13添加自定义服务
Android13系统源码下添加系统服务的大致流程;原创 2023-07-25 15:53:12 · 957 阅读 · 0 评论 -
从【连接受限】看Android网络
从连接受限的现象逆推、追溯,了解Android网络体系中的一角。原创 2023-05-07 01:19:47 · 2213 阅读 · 0 评论 -
Coap在Andorid中的简单应用
californium的简单应用,收发及组播。原创 2022-06-10 11:18:24 · 1043 阅读 · 1 评论 -
Android端连接ActiveMQ服务器
记录一下Android作为客户端去连接ActiveMQ服务时,存在的问题。MQTTmqtt比较简单,有较为成熟的库MqttAndroidClient;repositories { maven { url "https://repo.eclipse.org/content/repositories/paho-snapshots/" }}dependencies { compile 'org.eclipse.paho:org.eclipse.paho.cli原创 2022-01-07 14:19:35 · 2353 阅读 · 0 评论 -
gradle自定义插件
某一天,我终于想起了使用gradle。原创 2021-06-22 10:21:05 · 723 阅读 · 0 评论 -
LiveData浅析
LiveData是Jetpack中的重要一环,在MVVM架构中承担着核心的位置。但我们暂时不去理会它在整个架构中的发挥,而是来关注其本质——LiveData本质是一个被观察者,即Observable。原创 2021-05-08 20:50:56 · 495 阅读 · 2 评论 -
JNI实用笔记
cmake配置构建方式从ndk-build转到cmake,目前感觉良好。cmake配置:#设置最小 cmake 版本cmake_minimum_required(VERSION 3.4.1)project (start)#命名start动态库,最终生成libstart.soadd_library(start SHARED src/main/cpp/start.cpp)#查找本地库find_library(xter start)#原生库及log日志相关库target_link_libra原创 2021-03-29 17:14:10 · 611 阅读 · 0 评论 -
kotlin作用域函数
官方释义作用域函数:Kotlin 标准库包含几个函数,它们的唯一目的是在对象的上下文中执行代码块。当对一个对象调用这样的函数并提供一个 lambda 表达式时,它会形成一个临时作用域。在此作用域中,可以访问该对象而无需其名称。这些函数称为作用域函数。共有以下五种:let、run、with、apply 以及 also。当前使用的kotlin版本为1.3.72;用官方的区别方式,主要从上下文对象引用方式和返回值加以区分:函数引用方式返回值runthis函数执行结果wi原创 2020-07-27 17:42:21 · 901 阅读 · 0 评论 -
关于Kotlin泛型遇到的问题
Java里有?、extends、super;Kotlin里有*、out、in;虽然表示方法不同,但其实可以认为是分别对应且等价的;...原创 2020-05-09 15:37:17 · 1624 阅读 · 0 评论 -
使用Gson解析错误json数据
在拉取数据时,有时候会遇到一些错误数据导致整张表都无法正常存储的情况,比如这种错误:com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Invalid long: "null"原json数据是这样的: { "id": "120207568323752...原创 2019-12-05 16:37:50 · 3044 阅读 · 0 评论 -
在Java中运行JS
不借助平台内置引擎(比如Android的WebView)运行JS原创 2019-10-14 17:14:06 · 1543 阅读 · 0 评论 -
关于gradle多渠道打包的命名
使用gradle多渠道打包也不是什么新鲜事了,配置productFlavors就完事了,再写点buildConfigField什么的,似乎也就可以用了。用确实是可以用,但遇上某天想改打包出来的名字就很尴尬了,不知道怎么改。使用本来在build.gradle有这样的配置:android { productFlavors { jinxin_bcca { ...原创 2019-09-23 18:19:52 · 759 阅读 · 0 评论 -
关于RecyclerView的notifyDataSetChanged
在很久以前,总觉得ListView的notifyDataSetChanged之类的方法很神奇,数据更新后,调用一下,视图就变了…不过自从知道观察者模式以后就没感觉么神奇了,反而对View的绘制测量一系列精细的计算叹为观止—虽然从某种程度上来说,Android的源代码其实挺臃肿的。后面推出了RecyclerView,但其实更新机制并无不同。就如调用notifyDataSetChanged方法:...原创 2019-09-01 17:12:48 · 2701 阅读 · 0 评论 -
RecyclerView二级列表
最近正好有做到二级列表,就记载一下怎样使用RecyclerView做二级列表吧。效果大概就是这个样子,可以凑合用,主要是弄清楚大概原理,这样就知道步骤。代码...原创 2019-08-17 23:11:07 · 6391 阅读 · 1 评论 -
JNI极简使用
JNI不必多说,是Java与Native的桥梁,也许不经常使用,但必须会使用。流程也是一致的:创建带有native方法的Java类使用javah编译上面的类,得到.h文件拷贝头文件部分内容,写成.c文件制定makefile使用ndk编译.c得到.so文件使用System.loadLibary等方法加载so文件调用接下来我们就…稍等,为了不去终端敲那些javah/ndk之类的命...原创 2019-07-12 11:00:01 · 320 阅读 · 0 评论 -
关于DexClassLoader
安卓的动态加载必备知识之一,DexClassLoader。DexClassLoader当然也是一种ClassLoader,但本身属于顾名思义是用来加载Dex文件的,是安卓系统独有的一种类加载器。基础概念在此之前可以稍微回顾下ClassLoader的相关基础:ClassLoader是用来加载class文件的,它负责将*.class加载为内在中的Class对象加载机制为“双亲委派”,即能交...原创 2019-07-05 10:07:58 · 7501 阅读 · 1 评论 -
RecyclerView的辅助类----SnapHelper使用及源码浅析 下
上一篇SnapHelper使用及属性浅析 上主要记载了Snap的一些基础使用,基本工作流程,及滑动速度相关的计算。这一篇旨在补上扩展应用,及扩展时需要注意的一些事项。LinearSnapHelper也不多说,官方已经提供了两个扩展类LinearSnapHelper和PagerSnapHelper,这里拿一个出来分析分析,就知道怎么用了。先看下大概有哪些方法(也可以看上一篇的类图):先做好...原创 2019-03-24 22:07:25 · 601 阅读 · 0 评论 -
Scroller源码浅析
scroller用的地方非常多,几乎所有可以滑动的控件都有scroller存在的身影。它源码里究竟写了什么,才让它具备这样强大的功能呢?其实,scroller的源码中绝大部分代码都是在写算法,全是在计算…源码开头就是一段强行计算://Scroller.java private static final float INFLEXION = 0.35f; private static fi...原创 2019-03-30 22:07:47 · 363 阅读 · 1 评论 -
RecyclerView的辅助类----SnapHelper使用及源码浅析 上
本意是要了解一下Scroller的,但SnapHelper也算是Scroller的应用之一,本着先学会使用再尝试理解的用意,顺便看看这东西是怎么工作的。SnapHelper的用处用处?其实没什么用,硬要说有的话…拯救强迫症算不算…所以官方命名为"helper"不是没有道理的,这代表着,可有可无…咳,回正题。SnapHelper主要的作用是辅助操控RecyclerView的Fling过...原创 2019-03-24 01:03:31 · 4149 阅读 · 0 评论 -
Android传值,怀旧一下
少壮不努力,老大看源码。------不晓得哪个说的,可能是鲁迅?就Android原生而言,传值是相当的简单。Activity之间是这样传的: public void goActivity() { Intent intent = new Intent(MainActivity.this, DemoActivity.class); intent.putExtra("text", "co...原创 2019-03-09 16:45:34 · 106 阅读 · 0 评论 -
Android开发常用工具类与资源
常用初始化类常用日志工具类常用颜色资源color.xml常用尺寸资源dimens.xml原创 2016-05-31 13:04:02 · 408 阅读 · 0 评论 -
关于getView中图片重复加载
在ListView或GridView中,经常会出现getView反复调用的问题。究其原因,是视图进行绘制前多次onMeasure的结果。原创 2016-05-31 20:51:13 · 736 阅读 · 0 评论 -
DialogFragment自定义标题及其点击事件
DiglogFragment自定义标题1.自定义标题栏需要用到requestWindowFeature(Window.FEATURE_CUSTOM_TITLE),一般在inflate视图前调用,即: 在Activity中先于setContentView调用; 在DialogFragment中先于onCreateView中的inflate调用。 总而言之,要在视图生成之前定义好特性,为自定义标题原创 2016-06-29 21:53:57 · 2707 阅读 · 0 评论 -
垂直进度条VerticalSeekBar
水平的进度条见多了,总会想见个垂直的进度条开开眼。今天咱就试试。 要说原理也简单,就是把宽高倒置,其他的理论上都不需要动,发现问题再补补也就行了。官方提供官方是提供了垂直进度条的例子源码的,位置在android-sdk-windows\sources\android-23\com\android\example\rscamera\VerticalSeekBar.java,当然首先你SDK中要有An原创 2016-07-23 23:54:45 · 5859 阅读 · 4 评论 -
Android局部模糊处理
要实现模糊或者毛玻璃效果,使用PS自然最方便(不过模糊的区域就较为固定了);所以只得在代码里进行动态处理。 经过一番搜寻研究,得到两种切实可行的方法。 一,使用FastBlur; 二,使用RenderScript。 效果如下: 算法FastBlur/** * 高斯模糊 * * @param srcBitmap * 源位图原创 2016-07-08 23:35:26 · 5575 阅读 · 0 评论 -
自定义数字时钟DigitalClockView
有这么一个需求:要求在应用中每个界面都有一个时钟显示时间,以秒更新。自然而然,就想到了自定义View—以TextView+Handler方式倒是虽然可以实现,但难免累赘; 而时钟显示肯定要本身维护一个更新UI的线程,继承View固然是正确的,但不如继承SurfaceView来得更为直接—作为一个经常用来播放视频和展现游戏画面的控件,无疑是最佳选择。很简单的东西,除了surfaceview的通常注意原创 2016-10-23 11:06:07 · 789 阅读 · 0 评论 -
ButterKnife等注解工具在Eclipse不起作用
ButterKnife在Android Studio中导入后即可使用,而Eclipse导入后却不起作用~~ 坑了好久,后来才知道Eclipse需要设置一下才能让注解发挥功效。1.打开项目“属性” 2.在”编译器“选项中启用指定设定 3.导入注解库 以上。原创 2016-12-15 16:08:14 · 1130 阅读 · 0 评论 -
Mina中的粘包处理
Mina中的粘包处理mina框架虽然已经老了,不过还是比较常用的,遇到解码粘包问题时,就需要继承一个特定的解码器了——CumulativeProtocolDecoder。顾名思义,这个解码器本身就是作为累积数据用的,为什么这么说呢?因为: 在deCode()方法返回false时,此解码器会把接收到的数据累积性地缓存至IoBuffer中。这样只要继承此解码器,然后稍做处理,就可以摆脱粘包问题了。原创 2017-02-22 16:30:07 · 1201 阅读 · 0 评论 -
Android屏幕适配的基础知识
尺寸概念resolution:以像素数表示的高度与宽度dpi:dots per inch,一英寸的像素数量分辨率可各种检测软件查得,也可由adb命令行查看:adb shell wm sizedpi可由计算得出,但实际效果是由厂家制定的dpi而定的:厂家adb shell getprop ro.sf.lcd_density计算例1:分辨率为1920*1080,5.5英寸,dpi计算可得: dp原创 2017-05-24 11:35:40 · 580 阅读 · 0 评论 -
ListView嵌套显示不全的原因
问题所在在一个ViewGroup里面放置多个ViewGroup本身就是有风险的,而常用的ListView、GridView、ScrollView就成了风险高发地。ListView中嵌套ListView,高度失衡…ListView中嵌套GridView,高度失衡…GridView中嵌套GridView,高度失衡…GridView中嵌套ListView,高度失衡…ScrollView中嵌套...原创 2019-02-21 22:18:35 · 1376 阅读 · 1 评论 -
OkHttp3源码工作流程浅析
细节先放在一边,咱来把工作流程先理一下。常规调用异步 Request request = new Request.Builder() .url(url) .post(requestBody.build()) .build(); okHttpClient.newCa...原创 2019-02-22 15:06:01 · 248 阅读 · 0 评论 -
View事件分发源码浅析
说到Android的View事件分发,咱们都应该听过下面三个方法的大名:dispatchTouchEventonInterceptTouchEventonTouchEvent那么这三个方法在源码中是怎样被串联起来的呢?抛开细节,我们还是先追一下其工作流程。工作流程一切要从Activity说起://Activity.java public boolean dispatch...原创 2019-02-23 17:02:40 · 219 阅读 · 0 评论 -
EventBus使用及源码浅析
看源码其实就和小时候拆玩具差不多,拆其实挺简单的,难的是拆了还能组合回来…----沃兹基硕德基本使用使用的是EventBus-3.1.11.创建事件类,这里创建了LogEvent类,事件类理论上可以是任意对象,当然尽量命名规范予以区别public class LogEvent {}2.在某个类中注册事件,需要创建一个以事件为参数的方法,并且加以@Subscribe注解,@Subscr...原创 2019-03-01 12:39:04 · 162 阅读 · 0 评论 -
Activity启动流程浅析
Activity启动流程的简要时序原创 2019-04-07 17:22:24 · 140 阅读 · 0 评论 -
关于MediaStore.Files
关于MediaStore.Files一、一般多媒体文件查找本地的媒体文件,一般使用 MediaStore.Video.Media MediaStore.Audio.Media MediaStore.Images.Media 三个就足够了。 用法基本一致,例如想要获取媒体库中的所有图片,就这么写://获取cursorCursor cursor = this.getContentResolv原创 2016-05-16 16:11:06 · 18423 阅读 · 6 评论