自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

5ingwings(SiHao)的博客

道阻且长,且行将至

  • 博客(77)
  • 收藏
  • 关注

原创 Flutter资源管理(国际化)

.arb( Application Resource Bundle) 基于json格式的资源文件,每个.arb文件都包含一个JSON表,该表从资源ID映射到本地化值,文件名包含已为其转换值的语言环境使用1 在pubspec.yaml中添加flutter_localizations依赖并执行flutter packages getdependencies: flutter: sdk: flutter # international flutter_localizations:

2020-10-13 16:24:41 1214

原创 Android-APK体积优化与dex方法数超出解决

一、Android APK体积优化1 开启混淆 则可以去除一些不需要的文件 minifyEnabled 开启混淆 shrinkResources 删除无效的Resource shrinkResources依赖于minifyEnabled,必须和minifyEnabled一起用2 图片压缩 (1)对于没有透明区域的png图片,可以转成jpg格式 (2)对于体积特别大(超过50k)的...

2020-08-25 00:22:47 2019

原创 局域网镜像/屏幕共享/文件传输方案(MirrorCast/RTSP/RTP/RTCP/RTC/WebRTC/RTMP)

局域网镜像/屏幕共享/文件传输方案(Miracast)jd写 局域网镜像方案 局域网推流方案技术是什么 wifi直连 局域网 点对点编码 H.264网络传输 RTSP RTP RTCP 深入一些WIFI联盟制定的标准, MirrorCast实际上就是WIFI联盟对支持WiFi Display设备的认证名称基于WiFi Display技术,而WiFi Display技术的核心又是WiFi Direct技术(wifi直连)不受格式限制 均以H264编码传输镜像传输协议基于WIFI直连

2020-08-14 19:48:17 3919 7

原创 数字图像水印处理

java实现简单的数字图像水印处理一、需求说明 用java设计一个处理数字图像水印的系统,该系统可以实现打开图片,添加可见水印,添加不可见水印,识别水印,提取可见水印,提取不可见水印,保存图片等功能。 这里的水印识别只能识别自己添加的水印二、技术准备 图像处理,数字水印技术三、代码实现 参考GitHub:https://github.com/5ingwings/WaterMark-java

2020-05-03 20:42:08 11718 8

原创 云计算、云服务器、云数据库和云存储基本介绍

云计算是什么:云计算即分布式计算 通过使用更高性能的机器 更多的机器 来达到相关服务的计算云计算产品分类:如建立一个网站:要搞服务器 安装服务器软件 以及编写程序Iaas(架构即服务) 不用自己搞服务器计算基础设施的利用,包括CPU、内存、存储、网络和其它基本的计算资源,用户能够在之上部署和运行任意软件:操作系统和应用程序如 云服务器 云硬盘Paas(软件即服务) 不用自己搞服...

2020-03-28 21:18:13 8689

原创 Android Webview(js与native互调)

Webview前端相关知识:同源策略:当域名和端口名相同则称为同源XMLHttpRequest 对象可以在页面加载后与服务器进行收发包可以只更新局部界面跨域:浏览器的同源策略导致了跨域在浏览器中 不同来源的网站是不能相互访问 避免被随意修改内容HTML 标签语言 用于设计网页的样式、内容 HTML5 新的第五代HTML规范 有<video 标签等若网站使用了HTML5 ...

2020-03-28 21:12:12 6543

原创 Accessibility Service介绍与使用

Accessibility Service介绍与使用Android系统提供的辅助功能,旨在帮助身体不便或操作不灵活的人辅助使用手机应用一般在手机中 叫 无障碍模式当然 也可以用于一些其他事情 如 自动抢红包 静默安装apk 自动点击弹框等需要用户主动打开无障碍模式,并且打开所需的特定的无障碍服务 该服务才会生效生命周期:该服务由系统管理生命周期(1)onServiceConnec...

2019-01-26 14:09:36 10595

原创 Visual Studio 常见问题

Visual Studio 常见问题1 打开了sln解决方案 但是没有.h .cpp文件 只有类文件如图:解决: 视图问题 当前是在 类视图 点击 “视图”-&amp;amp;amp;amp;amp;amp;amp;gt;“资源文件管理器”就可以切换到带有 头文件 资源文件 和 源文件的视图2 未能正确加载ProviderPackage包解决:第一种方式: 在目录下:%LOCAL%%APPDATA%\Microsoft\Vi...

2018-10-31 15:12:05 1771

原创 反编译工具及使用

反编译工具及使用反编译大致流程: 对Dex文件(Davilk虚拟机的可执行文件)进行反编译成 Smali (Davilk的寄存器语言) 再转化为 .class文件主要工具:1 apktool 下载使用见 https://ibotpeaches.github.io/Apktool/install/ 将apk放在解压的 apktool目录 执行: apktool d xx...

2018-09-10 22:52:13 6635

原创 Android屏幕常亮防息屏

Android屏幕常亮防息屏PowerManager 主要是用来控制电源状态的. 通过使用该类提供的api可以控制电池的待机时间 尽可能的使用最低级别的WakeLocks锁,并且确保使用完后释放它 使用 WakeLock得加 权限 &lt;uses-permission android:name="android.permission.WAKE_LOCK"/&gt;&lt;u...

2018-09-10 22:48:00 4753

原创 java、kotlin反射

java、kotlin反射反射机制 原理:JVM会持有加载的类的对象 反射就是去 获取指定的class对象 用该对象进行 属性 方法的获取 和 调用 作用:通过反射,可以在运行时获取一个类的所有方法和变量(包括私有)可以动态地创建对象并调用其属性破坏封装性?封装,是将具体的实现细节隐藏,而把功能作为整体提供给类的外部使用,也就是说,公有方法能够完成类所具有的功能。当别人使用这个...

2018-09-10 22:21:57 6807

原创 性能优化之内存泄漏排查(查看系统内存和CPU占用)

Android性能优化之内存优化计算 APP 获得的最大内存分配值Runtime rt=Runtime.getRuntime();long maxMemory=rt.maxMemory();Log.i(&amp;amp;quot;maxMemory:&amp;amp;quot;,Long.toString(maxMemory/(1024*1024)));内存泄漏一、内存泄漏查看1 生成.prof文件 AS 内自...

2018-09-10 21:27:00 9081

原创 AudioManager(获取麦克风录音流)

AudioManagerpublic AudioDeviceInfo [] getDevices(int flags)flags: GET_DEVICES_ALL 3 GET_DEVICES_INPUTS 1 GET_DEVICES_OUTPUTS 2AudioDeviceInfo[]:getType()TYPE_HDMI 9 描述HDMI连...

2018-09-10 21:24:10 4633

原创 Android执行命令行命令(adb获取系统Logcat)

Android执行命令行命令一、通过ProcessBuilder1 String[] args = {&quot;pm&quot;, &quot;install&quot;, &quot;-r&quot;, filePath};2 ProcessBuilder processBuilder = new ProcessBuilder(args);3 process = processBuilder.start(); 创建一个进程..

2018-09-10 21:03:45 7565

原创 Android盒子开发

Android盒子开发一、盒子重启需要root权限1 加权限: &lt;uses-permission android:name="android.permission.REBOOT" tools:ignore="ProtectedPermissions" /&gt;2 用系统PowerManager PowerManager powerMan...

2018-09-10 20:44:36 6912

原创 jar、aar、sdk打包以及app module生成 Library Module

jar、aar、sdk打包以及app module生成 Library Module打包jar: 1 将要打成jar包的 module 设置为 android-library模式2 在主module中 用compile project(‘:要打成jar包的 module’)3 你编译完工程后 所有java文件会在build/bundle/release或者debug目录下会生成cla...

2018-09-10 20:43:13 6149

原创 获取View的Bitmap以及ViewPager使用

获取View的视图几种方法:保存一个父布局 则 他的子控件 子View也是会显示的一、创建一个新的空Bitmap,然后再根据它来创建一个Canvas,最后调用View的draw方法将View画到Canvas上 public Bitmap createViewBitmap(View v) { Bitmap bitmap = Bitmap.createBitma...

2018-06-30 17:41:56 1787

原创 性能优化之UI卡顿排查与解决(帧率查看、X2C)

性能优化之过度绘制过度绘制监测:打开开发者选项的 显示过度绘制原色:没有过度绘制 蓝色:1 次过度绘制 绿色:2 次过度绘制 粉色:3 次过度绘制 红色:4 次及以上过度绘制优化策略:1 若你的界面有自己的背景覆盖了全屏,则可以去除Activity自带的背景色&amp;lt;style name=&quot;AppTheme&quot; parent=&quot;android:Theme.Li...

2018-06-27 00:53:00 8787 1

原创 Android进程与进程保活(涉及Notification)以及app crash表现、ANR定位

Android进程与进程保活由于内存限制,android系统会在内存不足时回收进程, * 一、进程回收顺序:* 优先级:前台进程&amp;amp;amp;amp;gt;可视进程&amp;amp;amp;amp;gt;服务进程&amp;amp;amp;amp;gt;后台进程&amp;amp;amp;amp;gt;内容供应根节点&amp;amp;amp;amp;gt;空进程 oom_adj越大 越可能被回收 系统进程 &amp;amp;amp;amp

2018-04-22 19:06:22 9207 1

原创 build.gradle结构分析与常见gradle命令

module-build.gradle结构分析与相关使用介绍gradle基本结构:apply plugin: 'com.android.application'android { // 编译版本 compileSdkVersion 27 buildToolsVersion &amp;amp;amp;amp;amp;amp;quot;27.0.2&amp;amp;amp;amp;amp;amp;quot; // 默认配置

2018-04-18 00:05:27 12104

原创 Android 自定义属性,自定义控件、自定义View以及View的常见Error

Android 自定义属性,自定义控件、自定义View自定义属性1 要使用 系统的属性 可以使用所继承的控件的属性 如继承的TextView 或者 View 则相关的属性都可以不用声明直接使用2 否则 要styleable中定义 &amp;amp;amp;amp;amp;amp;lt;attr name=&amp;amp;amp;amp;amp;quot;android:text&amp;amp;amp;amp;amp;quot; /&amp;a

2018-04-14 13:24:01 8127

原创 Android动画

Android动画主要有 帧动画,补间动画,和属性动画。当然也可以自定义动画帧动画 drawable中创建 xml文件 用 &lt; animation-list 标签 设置图片组&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;animation-list xmlns:android="http://schemas.a.........

2018-04-11 15:51:02 6398

原创 运动轨迹预处理

运动轨迹预处理相关名词: Trajectory preprocessing 轨迹预处理 time stamp 时间戳 sampled/sampling 采样 figure 1 图1 policy 策略 threshold 阈值该处理方式是建立在已有的硬件设备、服务的基础上的,如GPS,NetWork,Wifi定位获取的数据,并且是认为这些获取的数据是正确的(偏移值也是正确的)。

2018-04-11 13:47:32 18139

原创 常见加密解密和URL编解码

MD5Message Digest algorithm 5非对称加密,不可逆(因为会将原文部分信息丢失),长度固定 哈希算法的一种加密工具类public class MD5 { public static String md5(String content) { byte[] hash; try { // MessageDigest.

2018-04-02 14:14:48 11373

原创 Android上架相关(代码混淆和反编译工具的使用,签名,打包,加固)

Android上架相关(代码混淆和反编译工具的使用,签名,打包,加固)步骤:混淆 ,签名,打包(多渠道打包) ,加固 二次打包 :也就是 将已经打包的apk再次打包 生成 山寨版的 apk对抗重打包:通过 判断 签名的密钥和 当前app的 签名密钥是否相同 若不相同则退出等操作多渠道打包: 即不同的应用市场 去加上各自的标识 以便统计 生成 对应渠道的发行版 app ...

2018-03-24 19:25:27 6763

原创 Android结束APP进程以及判断进程是否存在、判断Activity是否在后台

Android结束APP进程以及判断进程是否存在1 androidstudio 的 stop app 是结束 app 下次启动 会从头启动2 通过 DDMS 结束进程 tools-&gt;android device monitor 等十几秒,弹出新对话框,然后左上角可以看到进程名 点击stop即可 模仿的 是 系统杀死进程 3 而 android开发者选项中的 不保持活动...

2018-03-24 18:13:38 13170

原创 Retrofit2.0(三)封装:如超时设置,加请求头,加公共请求参数,加拦截器等

Retrofit2.0(三)封装:如超时设置,加请求头,加公共请求参数,加拦截器等Retrofit2.0基本使用参考: Retrofit2.0(一)retrofit基本使用讲解和Converter转换器使用通过 OkHttpClient.Builder 实现相关设置: OkHttpClient.Builder builder = new OkHttpClient().new...

2018-03-09 12:23:43 6657

原创 Retrofit2.0(二)结合Rxjava2使用

Retrofit2.0(二)结合Rxjava2使用Rxjava2 学习参考: http://blog.csdn.net/weixin_37577039/article/details/78555208Retrofit2 学习参考: http://blog.csdn.net/weixin_37577039/article/details/78546591配置 //r...

2018-03-09 11:45:51 973

原创 极光推送配置和使用

极光平台流程: 客户端集成 极光推送,然后在软件启动的时候,获取RID(也可以自定义别名和标签) 然后上传值给服务器,当触发了某个事件时,进行网络请求,服务器端接收到会通过极光推送,发送推送(给不同标签组)。客户端再去根据不同的需求去接受数据,处理数据appkey是可以对应 android和苹果端的 对于同一个账号 在不同设备登录(同系统或者不同系统) 不会两个地方都推送,会挤掉前一个设备 只会推

2018-03-02 15:12:04 10774

原创 HashMap、HashTable、ConcurrentHashMap使用和原理分析(以及内存优化)

HashMap使用和原理分析(以及内存优化)HashMap:通过链地址法存放键值对的一种数据结构 链地址法:(开散列方法):设散列表地址空间的位置从0~m-1,则通过对所有的Key用散列函数计算出存放的位置,具有相同地址的关键码归于一个子集合(桶),采用链表的方式链接起来(链接头)。 如Hash函数为 Hash(x) = x%16 则 Hash(2) = 2; Hash(18)=2......

2018-03-01 12:32:07 9169 1

原创 Android高德地图获取当前地理位置(不显示地图只获取当前位置)

Android高德地图获取当前地理位置(不显示地图只获取当前位置)一、集成和权限配置 参考:http://blog.csdn.net/weixin_37577039/article/details/79177131二、//声明AMapLocationClient类对象 AMapLocationClient mLocationClient = null; //声...

2018-02-26 21:05:19 15680 1

原创 RecyclerView使用(六)结合PopWindow呈现

RecyclerView使用(六)结合PopWindow呈现PopWindow使用参考: http://blog.csdn.net/weixin_37577039/article/details/79369614 RecyclerView使用参考:http://blog.csdn.net/weixin_37577039/article/details/78581423 // 弹出框

2018-02-25 16:29:56 2824

原创 PopUpWindow基本使用

PopWindow基本使用PopWindow,类似Dialog 也是可以设置自定义view,设置窗体大小和位置网上很多人说 PopWindow是阻塞线程的 而 AlertDialog是非阻塞线程的,其实我觉得不太对。 PopWindow和AlertDialog应该都不会阻塞线程的,至于他们说的阻塞线程,只是当设置了 setOutSideTouchable为true时(且此时的 focus...

2018-02-25 16:21:49 5844

原创 RecyclerView使用(五)——结合Editext进行关键词搜索呈现

一、在原List数据中,加一个副List数据 public ArrayList<Integer> customerID = new ArrayList<>(); public ArrayList<Integer> customerID2 = new ArrayList<>();二、一样的添加数据 customerID.add(rootBean.get(i).getXXXXX())

2018-02-24 23:24:59 695

原创 Android M(6.0)以上权限获取和处理

Android M(6.0)以上权限获取和处理这里以获取通讯录为例子一、AndroidManifest中权限配置也是需要在AndroidManifest 配置权限&amp;amp;amp;amp;amp;amp;amp;lt;!-- 允许程序读取通讯录权限 --&amp;amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;amp;lt;uses-permission android:name=&

2018-02-07 20:05:52 843

原创 Android打开通讯录并获取数据

Android打开通讯录并获取数据一、AndroidManifest中权限配置<!-- 允许程序读取通讯录权限 --> <uses-permission android:name="android.permission.READ_CONTACTS"/>二、 配置动态权限 //**版本判断。当手机系统大于 23 时,才有必要去判断权限是否获取** if (Build.

2018-02-07 20:00:24 7274 3

原创 RecyclerView的使用(四)——Item内部控件的点击事件

RecyclerView的使用(四)——Item内部控件的点击事件有时 我们不仅需要Item的点击事件 我们还需要Item内部的某个控件的点击事件实现:一、 创建item内部点击接口/** * Created by SiHao on 2018/2/6. * item内部的删除监听接口 */public interface ItemInnerDeleteListener { void o

2018-02-06 18:22:59 4385 1

原创 Android Uri,Path与File、Bitmap的相互转换(新)

Android Uri,Path与File的相互转换(新)一、path-&gt;fileFile file = new File(path);二、 file-&gt;pathString path = file.getPath();注意URI和Uri的区别1 URI:是java.net的子类 2 Uri :是android.net的子类,Uri 不能被实例化

2018-02-02 19:19:03 31107 7

原创 Android下拉刷新和上拉加载更多

Android下拉刷新和上拉加载更多下拉刷新通过android系统提供的组件:SwipeRefreshLayout一、基本使用 1 xml中 添加 SwipeRefreshLayout 组件 该组件包含着要操作下拉刷新的控件 如ListView RecyclerView 等 注意这里的SwipeRefreshLayout组件的子布局只能有一个&lt;androi...

2018-01-31 11:06:29 29061 4

原创 Android调用系统的拍照,打开相册功能

Android调用系统的拍照,打开相册功能1 添加权限: uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> uses-permission android:name="android.permission.CAMERA" />2 设置标志(回传码) //

2018-01-28 13:27:38 34978 10

空空如也

空空如也

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

TA关注的人

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