自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shaoyangtangsong的专栏

做是一个感悟的过程

  • 博客(90)
  • 资源 (10)
  • 收藏
  • 关注

原创 ./gradlew dependencies

查看android 依赖命令行./gradlew dependencies+--- androidx.legacy:legacy-support-v13:1.0.0| \--- androidx.legacy:legacy-support-v4:1.0.0| +--- androidx.core:core:1.0.0 -> 1.1.0 (*)| +--- androidx.media:media:1.0.0| | +---

2020-10-15 00:24:36 1533

原创 TextView 前者显示不完了则...

2个TextView 前者显示不完了则…,后者需要占有位置 小skillandroid:minWidth="30dp 关键代码 <TextView android:id="@+id/name" android:layout_width="0dp" android:la...

2020-03-28 22:31:34 286

转载 HLS和M3U8简介

HLS和M3U8简介

2020-01-15 20:37:38 1796

原创 启动速度排查

nanoscope

2020-01-14 20:53:26 131

原创 Leaking LiveData observers in Fragments

参考关于在Fragment中使用LiveData需要注意observe的生命周期:https://proandroiddev.com/5-common-mistakes-when-using-architecture-components-403e9899f4cb -> 1. Leaking LiveData observers in Fragments如果使用this,会导致obse...

2020-01-07 11:08:59 197

原创 sql Union查询

sql union 联合查询需要左右2张表列数相同且,其中没有的列 需要有给定默认值

2019-11-08 11:18:25 192

原创 开发快捷查看db

开发查看dbdebugImplementation ‘com.amitshekhar.android:debug-db:1.0.6’运行app后,查看logcat日志能看到类似如下信息:DebugDB: Open http://192.168.186.81:8080 in your browser查看安卓sqlite数据库工具:Android-Debug-Database查看sql可...

2019-11-08 02:04:35 148

原创 WebView预加载,解析网页

//url确保是以http开头 private void init(String link) { setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) {...

2019-08-25 22:57:12 1363

原创 android内存分析-mat

图一图二

2019-08-13 21:30:25 283

转载 Apk瘦身

参考1

2019-08-06 11:59:54 92

原创 View不需要现在在屏幕上,到达截图效果

背景new一个有各种信息的View,不需要显示给用户,对这个View截图。上传分享等…参考代码实现ViewUtils.layoutView(view, 290, 210); 需要放在所有子view都bind完成后再调用,否则界面会乱掉public static void layoutView(View v, int width, int height) { // ...

2019-06-26 18:10:18 196

转载 windowSoftInputMode

监听软键盘高度变化涉及到两个较重要的知识点windowSoftInputModewindowSoftInputMode总共分两类:第一类以adjust开头,决定了键盘弹出之后以何种方式去挤压activity中的元素:adjustResize-挤压adjustPan-把整个Activity往上推adjustNothing-浮在Activity之上第二类以state开头,这个要关联两...

2019-06-11 10:34:56 392

原创 Android Map和Location开发

Android 系统Geocoder API能力getFromLocation(double latitude, double longitude, int maxResults) 可以指定语言(限原生系统)国内一般接的是高德和百度服务 不一定支持多语言。getFromLocationName(String locationName, int maxResults)getFromLocat...

2019-05-15 13:39:10 611

转载 MMKV——基于 mmap 的高性能通用 key-value 组件(存储)

githubMMKV——基于 mmap 的高性能通用 key-value 组件MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Windows 平台,一并开源。MMKV 源起在微信客户端的...

2019-04-29 21:45:25 353

转载 通用的GridDividerItemDecoration

通用的GridDividerItemDecoration特点1.支持设置左右间距2.支持设置first item/last item ,top和bottom margin3.剩余空间每个item平均分配package com.starlight.mobile.android.smsone.common;import android.content.Context;import and...

2019-04-29 15:23:55 1844

原创 ConstraintLayout

这2组constraint属性最好成对出现,不要app:layout_constraintLeft_toRightOf app:layout_constraintEnd_toEndOf=“parent” 这样搭配使用将得不到你所期望的效果 app:layout_constraintLeft_toRightOf="@+id/iv_test2" app:layout_c...

2019-04-26 17:04:37 150

原创 Android中Window

Window的属性Window的属性,常用的选项:FLAG_NOT_FOCUSABLEWindow不需要获取焦点,也不需要接收各种输入事件(收不到Back键的事件),此标记会同时启用FLAG_NOT_TOUCH_MODEAL,最终事件会直接传递给下层的具有焦点的Window。FLAG_NOT_TOUCH_MODEAL收不到触屏事件,不会拦截其他Window的单击事件,一般情况下都...

2019-04-25 12:25:31 268

原创 LiveData

LiveData加粗样式abstract LifecycleLifecycleOwnerliveData内部在invoke@MainThread public void observe(@NonNull LifecycleOwner owner, @NonNull Observer<T> observer) { if (owner.getLifec...

2019-04-23 21:24:33 160

原创 ObjectAnimator基本用法

//参数一:要操纵的view;//参数二:要操纵的属性(translationX、translationY、rotationX、rotationY、rotation、scaleX、scaleY, alpha)//参数三:可变数组参数,代表属性变化的一个取值过程。ObjectAnimator translationX = ObjectAnimator.ofFloat(mTestView, “...

2019-04-22 14:19:16 1390

原创 ProgressBar自定义旋转Drawable and shape相关属性

自定义rotateandroid:toDegrees值可以改变旋转的速度<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:pivotX=...

2019-03-26 20:46:18 310

原创 find 、grep vim命令

基本用法find . -name “*.java” | grep ‘Home.java’参考资料

2019-03-25 00:46:33 243

原创 shell脚本

set命令set -x与set +x指令用于脚本调试set是把它下面的命令打印到屏幕set -x 开启 set +x关闭 set -o 查看set -e 与+e在"set -e"之后出现的代码,一旦出现了返回值非零,整个脚本就会立即退出cut命令cut命令可以从一个文本文件或者文本流中提取文本列。[使用说明cut 命令从文件的每一行剪切字节、字符和字段并将这...

2019-03-17 01:38:39 101

原创 网络优化

网络优化主要从三个方面进行优化首先要弄清楚现状,需要服务端和客户端协同排查和打点统计。主要从速度、成功率、流量三方面来做优化。Gzip压缩HTTP协议上的Gzip编码是一种用来改进WEB应用程序性能的技术,用来减少传输数据量大小,减少传输数据量大小有两个明显的好处:以减少流量消耗可以减少传输的时间IP直连与HttpDnsDNS解析的失败率占联网失败中很大一种,而且首次...

2019-03-01 15:00:19 215

原创 Android新特性——App Bundles

我们是否可以直接利用Google为我们提供好的构建机制,模仿Play商店构造一个SDK对App自身进行更新呢?通过技术分析,我们有两种方案可以实现自行更新:1.直接利用PackageInstaller进行安装,这种方式最接近App Bundles的在Google Play中的实际作用效果,但是,最大问题就是会对用户造成极大的干扰,首先,很多用户出于安全考虑,是不会轻易允许未知安装来源的...

2019-02-27 19:37:13 126

原创 ANR分析

ANR类型ANR一般有三种类型:KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成ServiceTimeout(20 seconds) --小概率类型 Service在特定的时间内无法处理完成获取tr...

2019-02-26 17:30:12 387

原创 帧率

通过标准:fps&amp;gt;50,大于16ms的帧占比&amp;lt;8%,即为通过。下面是一些人体对不同帧率的感知程度:人眼与大脑之间的协作无法感知超过60fps的画面更新。12fps:手动快速翻动书籍的帧率;24fps:人眼感知的是连续线性的运动;低于30fps是无法顺畅表现绚丽的画面内容的蓝:更新Display List时间(OnDraw()方法占用时间)红:执行...

2019-02-24 11:41:22 470

原创 udp和tcp协议学习摘要

tcp协议

2019-02-24 11:03:47 224

原创 线程同步和死锁问题

死锁的形成死锁的避免死锁的表现

2019-02-24 10:40:29 351

原创 android动画学习摘要

android之animator 和animation 的区别Animation框架定义了透明度,旋转,缩放和位移几种常见的动画,而且控制的是一个整个View动画,实现原理是每次绘制视图时View所在的ViewGroup中的drawChild函数获取该View的Animation的Transformation值,然后调用canvas.concat(transformToApply.getMat...

2019-02-23 10:45:10 156

原创 Aop思想学习摘要

aop就是用来封装与业务逻辑无关的代码隐式调用,从而使得业务逻辑能重用,至于重用某一块业务代码,还是要用封装来保持业务逻辑完整性Android上的应用AOP技术常用在以下方面:1、日志记录:业务埋点2、持久化3、性能监控:性能日志4、数据校验:方法的参数校验5、缓存:内存缓存和持久缓存6、权限检查:业务权限(如登陆,或用户等级)、系统权限(如拍照定位)7、异常处理...

2019-02-22 14:20:13 84

原创 DiskLruCache学习摘要

DiskLruCache构造函数valueCount:valueCount the number of values per cache entry. Must be positive.比如okhttp中的缓存每一个url请求cache有四个文件,两个状态(DIRY,CLEAN),每个状态对应两个文件:一个0文件对应存储meta数据,一个文件存储body数据 /** * Crea...

2019-02-22 10:50:18 136

原创 Http/2,okhttp等摘要

多路复用多路复用,代替原来的序列和阻塞机制。所有就是请求的都是通过一个 TCP连接并发完成。 HTTP 1.x 中,如果想并发多个请求,必须使用多个 TCP 链接,且浏览器为了控制资源,还会对单个域名有 6-8个的TCP链接请求限制,如下图,红色圈出来的请求就因域名链接数已超过限制,而被挂起等待了一段时间:HTTP/2 中,同域名下所有通信都在单个连接上完成,该连接可以承载任意数量的双向...

2019-02-20 11:40:36 314

原创 HashMap等数据结构简析

ArrayList数组的实现,连续的存储空间,随机读取快,增删性能差,每次扩容都比较耗性能LinkedList双向链表实现,随机读取性能不如ArrayList,增删性能好。forEach 读取性能远好for循环,get(index)有个查找过程:/** * Returns the (non-null) Node at the specified element index...

2019-02-16 17:36:34 142

原创 Padding margin小点

GroupView等子中padding设置后是会算在相对应View的width中的而margin是不会的2.margin设置后其LayoutParams类型是其父空件相对应的类型。

2019-01-30 16:45:13 100

原创 adb 常用命令

获取机器MAC地址:adb shell cat /sys/class/net/wlan0/address查询各进程内存使用情况:adb shell procrank查看IO内存分区:adb shell cat /proc/iomem查看wifi密码:adb shell cat /data/misc/wifi/*.conf获取设备名称:adb shell ca...

2019-01-15 15:38:47 166

原创 文件IO如何设置Buffer

操作系统的文件操作是以Block为单位,而不是byte为单位。因此可以想到,如果我们的Buffer不是Block Size的整数倍,将存在浪费。例如我们的Buffer Size是1.1个Block,操作系统依然会操作2个Block。我们实验验证一下。通过StatFs.getBlockSize()得到小米3的Block Size是4096 byte。好像Buffer设置越大,系统调用越少,...

2019-01-04 18:56:54 789

转载 Android N混合编译与对热补丁影响解析

Android N混合编译与对热补丁影响解析

2018-12-16 00:20:50 372

原创 ART虚拟机oat文件

5.0以上android强制用art虚拟机oat文件在安装过程中dex2oat系统工具将apk所有dex文件转成oat文件放在/data/dalvik-cache/arm目录下后缀还是以dex/odex结尾

2018-12-07 19:03:09 475

转载 HTTPS协议、TLS协议、证书认证过程解析

非对称加解密非对称加密包含一个密钥对:公钥和私钥。公钥可以公开,私钥必须安全保存。如上图所示,数据可以被公钥加密,加密后的数据只有持有私钥才能进行解密。同理私钥加密的数据,也只有对应的公钥才能解密。建立HTTPS连接以后,client(浏览器)已经获得server段的公钥,并且经过TLS协议在握手过程中协商出一个只有双方知道的对称密钥,在后续的数据传输过程中都将使用该密钥进行数据加密传输...

2018-12-07 11:26:25 214

原创 ImageView所设置Id相同的坑

最近一直在查一个问题,ImageView通过Glide设置了图片之后,切换业务之后,或者恢复页面时,总是被置空。RecycleView+ViewPager+Glide的配置,一直在怀疑Glide哪里设置出了问题,就是没有找到原因。终于所有办法都用过之后,突然想起现在是一个Activity中加载了多个Fragment,那么会不会是id重复被其他界面替换了,依着这个思路,果然换了个独一的id问题就解...

2018-11-27 16:15:02 423

android usb转串口数据通信示例

android usb转串口数据通信示例。物联网开发中也会经常用到usb转串口,对android手机进行通信。一般都会用otc线进行转换。我在GitHub下来一份代码,亲测可用。并进行了修改封装。

2019-06-25

AES_experiment_01_C++

公司有用C#写的AES代码 又有用JAVA AES CBC PKCS5Padding 加密的 但对于由JAVA AES CBC PKCS5Padding 加密的数据C++解密的资料极为稀缺 故本人找到了一些资源 同时改写了一些填充方式 使得与JAVA C#兼容 VS2010 测试通过 JAVA的在这里http: blog csdn net wfung kwok article details 7766427 需要大家注意的是C++加密的秘钥和IV 向量是我自己设置的 大家可以自己修改 以兼容JAVA C# ">公司有用C#写的AES代码 又有用JAVA AES CBC PKCS5Padding 加密的 但对于由JAVA AES CBC PKCS5Padding 加密的数据C++解密的资料极为稀缺 故本人找到了一些资源 同时改写了一些填充方式 使得与JAVA C#兼容 VS2010 测试通过 JAVA的在这里h [更多]

2017-03-09

Android自动清理无用资源

使用步骤:http://blog.csdn.net/honjane/article/details/41351183 Android自动清理资源文件,节省了你去一个文件一个文件的找引用类,和繁琐的删除工作,平常你删项目中的无用资源可能要几个小时,现在只需几秒钟时间 目前支持 图片,layout,menu 删除

2015-07-18

GeoHash编码demo

基于经纬度 找到附件的人java简单的实现

2014-12-09

silverlight4学习教程

silverlight开发学习的好资料 清晰完整 欢迎下载

2013-01-05

4个android项目(联系人、播放器、文件浏览器、点餐系统)

4个android小项目,让你更快的熟悉android的开发。适合初学者。

2012-03-24

android中实现滑屏三种方法

为了项目中的效果更加的贴近用户的需求,有时需要实现手势滑屏。

2012-03-18

通讯录中的字母条的实现

自定义字母条的实现,可以在触摸的字母条位置。找到相应的联系人

2012-03-18

listv下拉更新的实现

仿新浪的自动刷新的效果的listview的实现代码

2012-03-18

空空如也

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

TA关注的人

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