自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (8)
  • 收藏
  • 关注

原创 Node版本锁定

通过工程配置,锁定Node版本,避免团队协作中因Node版本不同而引发线上问题。

2023-01-17 17:46:41 2187

原创 IDEA插件杂记

IDEA插件开发:代码格式化、代码自动补全、代码AST解析和混淆

2022-10-09 16:42:10 1235

原创 Android内存泄漏

内存泄漏:生命周期较长的对象引用了生命周期较短的对象,导致生命周期较短的对象无法被GC及时回收,从而导致被占用的内存无法释放。

2022-08-16 15:08:04 1126

原创 Android屏幕共享-基于WebRTC实现

WebRTC简介WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC的实现是完全开源的,其核心代码用C++编写。

2022-03-17 14:28:05 9583 10

原创 Compose基础布局

Compose基础布局常规布局ConstraintLayout常规布局Compose 可以有效地处理嵌套布局,堪称设计复杂界面的绝佳工具。这与 Android Views 相比是一个进步;在 Android Views 中,出于性能方面的原因,需要避免使用嵌套布局。Column示例:@Composablefun ArtistCard() { Column { Text("Alfred Sisley") Text("3 minutes ago") }

2022-01-11 17:51:02 2368

原创 Jetpack Compose

Jetpack Compose概览为什么使用ComposeCompose编程思想可组合函数可以按任何顺序执行重组会跳过尽可能多的内容布局、控件布局主题列表文字图形动画手势概览Jetpack Compose 是用于构建原生 Android 界面的新工具包。它可简化并加快 Android 上的界面开发,帮助您使用更少的代码、强大的工具和直观的 Kotlin API,快速打造生动而精彩的应用。为什么使用Compose更少的代码编写代码只需要采用 Kotlin,而不必拆分成 Kotlin 和 XML 部

2022-01-06 11:15:50 1448

原创 Android USB设备插拔监听

USB设备插拔监听普通USB设备输入型USB设备普通USB设备此类USB设备插拔监听,网络上很容易搜到。注册广播,此处只给出静态注册:<receiver android:name=".USBReceiver" > <intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/> <action android:name="an

2022-01-05 14:51:15 4476

原创 Android集成Google Breakpad,捕捉Native层崩溃

Android集成Google Breakpad,捕捉Native层崩溃介绍Google Breakpad集成源码下载so库编译Android Studio新建工程源码目录拷贝编写CMakeListsbreakpad引用编译文件缺失:third_party/lss/linux_syscall_support.h介绍Android开发过程中,Crash是经常碰到的问题。Android端的Crash分为Java层和Native层崩溃。Java层的Crash可在Application中通过Thread.Unc

2021-08-03 17:41:21 1033

原创 Android串口通信

Android串口通信类结构Java层SerialPortManager:对外提供单例类NativeInterface:加载native层libSerialPortCallback:读取串口数据后,回调interfaceC++层使用获取单例类对象设置串口数据listener查找串口打开串口发送数据关闭串口类结构Java层SerialPortManager:对外提供单例类public class SerialPortManager { NativeInterface nativeInter

2021-05-25 16:58:33 1504 1

原创 DialogFragment全屏且半透明

DialogFragment全屏且透明DialogFragment基本使用:TestDialogFragment dialogFragment = new TestDialogFragment();dialogFragment.show(getSupportFragmentManager(), "test");默认唤起的DialogFragment不全屏,四周有边距。可通过setStyle实现全屏且透明:<style name="fragment_dialog" parent="@andr

2021-04-08 09:36:09 827 1

原创 Android防止快速重复点击

Android防重点击,网上有很多实现方式:RxJava 的 throttleFirst()、Aspect AOP、记录点击时间。总结了如下一种方式:本质是记录点击时间。import java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;import java.lang.reflect.Method;import android.view.View.OnClickListener;public class OnCl

2021-02-26 19:48:56 670

原创 Android设备:外接扫码枪与系统软键盘问题

Android设备:外接扫码枪与系统软键盘问题Q&AQ&AQ:扫码枪扫码后,自动调起系统软键盘A:扫码枪相当于外接键盘,对于外接键盘不同的Android设备表现不同,一般我们期望外接键盘与系统键盘互斥。看厂商是否在Framework有做过适配处理。若要不弹出系统软键盘,可禁用Activity软键盘:getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);解除禁用:getWindow().cle

2021-02-25 09:32:57 3867 4

原创 Activity为singleTask模式时的生命周期

Activity为singleTask模式时的生命周期Activity A:android:launchMode=“singleTask”Activity B:launchMode默认正常场景:由A切换到B:A–>BA: onPause B: onCreate–>onStart–>onResume A:onStop由B回到A:B通过finish方法返回AB: onPause A: onRestart–>onStart–>onResume B: onStop–&gt

2020-12-15 21:21:16 1295

原创 Android双屏机,副屏内容的显示和关闭

系统版本差异Android N及以下版本,支持使用Presentation实现客显屏显示;Android O及以上版本,支持使用Activity实现客显屏显示。客显屏内容显示if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { //Android O开始,使用Activity显示客显屏内容 ActivityOptions options = ActivityOptions.makeBasic(); MediaRoute

2020-11-17 15:07:38 4426 3

原创 Android:Kotlin与Java比较

Android:Kotlin与Java比较一、Kotlin优势1.1 优雅的解决Java空指针问题1.1.1 编译期进行空指针检查1.1.2 精简防空判断代码1.2 代码精简1.2.1 精简Set/Get方法1.2.2 精简属性调用1.2.3 精简单例模式二、从Java到Kotlin平滑过渡2.1 Kotlin开发环境搭建2.1.1 若为新项目,则IDE创建时选择Kotlin2.1.2 若已有工程为全Java开发,可新建一个Kotlin类文件,IDE会自动配置Kotlin开发环境2.1.3 Gradle中添

2020-10-10 11:11:25 3894 2

原创 BMP位图转换:24bpp转1bpp — Java实现

24位BMP位图转点阵图,即24bpp转1bpp基本概念场景Java语言实现基本概念BPP:bits per pixel,每个像素的比特数。场景打印机打印二维码/图片:热敏打印机只可打印点阵图;对图片质量要求低,降低内存消耗。Java语言实现package com.szsicod.print.escpos;import android.graphics.Bitmap;import android.graphics.Color;import android.util.Log;impor

2020-09-16 16:36:35 1120

原创 BMP位图转换:24bpp转1bpp — C实现

24位BMP位图转点阵图,即24bpp转1bpp基本概念场景C语言实现基本概念BPP:bits per pixel,每个像素的比特数。场景打印机打印二维码/图片:热敏打印机只可打印点阵图;对图片质量要求低,降低内存消耗。C语言实现#include <string.h>#include <stdlib.h>#include <stdio.h>/* BMP file signature */#define BMP_SIGNATURE 0x4D42

2020-09-16 16:25:41 1140

原创 Android仿Launcher实现分页功能

App需求:仿Launcher实现分页,滑动翻页。经过研究,网上使用ViewSwitcher的方案,仿Launcher实现分页功能,可基本满足需求。但无法左右来回随意滑动,故放弃。最终使用自定义ViewGroup的方式,探索出新的实现方案。效果图,如下:涉及到的类:MainActivity.java //主页面LauncherViewPager.java //自定义ViewGroup,实现了分页和滑动功能ViewPagerAdapter.java //自定义ViewGroup的Adap

2020-08-11 16:46:16 759 4

原创 TCP/IP协议:记(2)

TCP首部格式说明:首部长度占4 bit,此长度表示首部中32bit字的数目。因此TCP首部最长为60字节。若没有任选字段,正常长度为20字节;即:4bit最大值为:1 + 2 + 4 + 8 = 15 32bit = 4 bytes 15 * 4bytes = 60bytesTCP首部中有6个标志位:URG:紧急指针(urgent pointer)有效ACK:确认序号有效PSH:接收方应该尽快将这个报文段交给应用层RST:重建连接SYN:同步序号用来发起一个连接FIN:发送端..

2020-08-10 14:00:59 335

原创 TCP/IP协议:记(1)

UDP传给IP的信息单元称作UDP数据报,UDP首部的长度为8字节。IP首部包含协议域(8bit),标识数据属于哪一层:1代表ICMP协议,2代表IGMP协议,6代表TCP协议,17代表UDP协议。ICMP和IGMP定位矛盾:在TCP/IP协议族的4个层次中,与IP放在同一层,因为事实上它们是IP的附属协议;在目的主机解析以太网数据帧时,放在IP层的上面,因为ICMP和IGMP报文都封装在IP数据报中。以太网IP数据报的封装是在RFC 894中定义的,IEEE 802的IP...

2020-08-05 08:40:05 152

原创 Android顶部弹出提示语的三种实现方式:WindowManager、PopupWindow、Toast

需求:在主页Activity顶部从上向下滑动出现提示条,且5秒后自动从下向上滑动消失。自定义布局文件:TipsLayout.xml// layout_tips.xml<LinearLayout android:layout_width="match_parent" android:layout_height="120px" android:paddingStart="20px" android:paddingEnd="20px" and

2020-06-02 18:56:22 3148

原创 Android系统配置文件中的设备信息读写:getprop/setprop

在Android开发中,有时需要获取设备信息,如:系统版本、固件版本、设备型号等,这些信息存在于Android系统配置文件:default.prop、/system/build.prop中。可通过adb命令和Build两种方式获取、查看。一、通过adb命令查看、设置1.查看所有配置信息:adb shell getprop2.查看指定配置信息:adb shell getprop [key]如:查看设备型号:adb shell getprop “ro.product.model”3.新增自定义配

2020-06-02 09:17:06 3193

原创 Android串口通信,分包/黏包数据解析

搭载Android系统的智能硬件,因业务需求,App经常会用到串口通信交互数据。串口通信需自定义指令格式,且需自己处理数据交互过程中分包、黏包的情况。1.指令格式格式说明:字段说明STX起始符(固定为0x80,1 byte)LEN数据长度(CMD、DATA的长度,2 bytes)CMD业务类型(1 byte)DATA业务参数(TLV格式,可变长...

2020-04-24 09:26:42 4722 2

原创 Android PopupWindow显示时,隐藏底部导航栏

Android PopupWindow显示时,隐藏底部导航栏第一步:app全屏,常规设置第二步:创建PopupWindow第一步:app全屏,常规设置final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_F...

2020-01-21 09:45:26 4930 3

原创 RSA公钥文件(PEM)解析

RSA Public Key文件(PEM)生成。

2016-06-16 10:27:31 54479 6

原创 RSA私钥文件(PEM)解析

已知RSA私钥各数据域,生成PEM文件。

2016-06-15 11:12:37 34409 2

转载 VS+VA搭建顺手的NDK集成开发环境

转载地址:http://www.kanxue.com/bbs/showthread.php?t=197811作者:zxjay工欲善其事,必先利其器。Android NDK开发环境,可选择VIM+插件、Eclipse+CDT等,这里介绍另一种选择:VS+VA软件准备:Visual studio 2008 // 其他版本也行,这里以VS2008为例。Visual ass

2015-03-11 14:02:17 1634

原创 Android Native Service简单实现示例

说明:此功能实现是以Android系统源码作为基础的。原著作者及链接:①作者:longfeey链接:http://blog.csdn.net/longfeey/article/details/5887026②作者:blackboycpp链接:http://blog.csdn.net/blackboyofsnp/article/details/7243070 此文用作笔记

2015-02-05 18:03:45 1220

转载 Android利用LocalSocket实现Java端进程与C端进程之间的IPC

原文地址:http://www.cnblogs.com/zealotrouge/archive/2013/06/24/3152941.html  经验证,可实现android端c层与java层的socket通信。Android是建立在Linux之上的OS,在涉及到安全、网络协议、文件加密等功能时,往往需要通过C语言调用底层API来实现,而如何发出指令让C端执行我们想要的功能,并且在执行

2014-11-26 17:45:58 660

转载 LocalSocket/LocalServerSocket

前言  本章内容android.net.LocalSocket章节,版本为Android 4.0 r1,翻译来自:"水中影",欢迎访问他的博客:"http://www.cnblogs.com/gosunriver/",再次感谢"水中影" !期待你一起参与翻译Android的相关资料,联系我[email protected]。声明  欢迎转载,但请保留文章原始出处:) 

2014-11-26 15:38:05 4946

原创 如何生成android端可用so

此文目的:1.备忘录,方便自己今后查阅;2.方便与大家交流和学习。此文只是对所查阅的资料进行了整理。说明:1.以下两种方法在linux系统下或cygwin均可实现,本文是在linux系统下进行环境配置。2.此文中所用NDK版本:Android-NDK-r6一.android端so与Linux端so区别android端处理器是arm处理器,一般PC端Linux系统

2014-11-13 11:44:52 943

原创 顺序栈实现

#define MAXSIZE 100typedef struct{ char elem[MAXSIZE]; int top;}stStack;void InitStack(stStack*& s);int Push(stStack*& s, char e);char Pop(stStack*& s);int _tmain(int argc, _TCHAR* argv[])

2013-12-26 09:50:38 718

原创 链表栈实现

链表栈实现,代码如下:

2013-12-25 11:38:51 712

原创 C++操作符重载

整理部分C++操作符重载,直接上代码:myOperator.h#pragma once#include using namespace std;class myOperator{public: myOperator():x(0),y(0){ a[0] = a[1] = 0; } friend ostream& operator<<(ostream& os, con

2013-12-11 10:36:29 580

原创 C++派生类访问权限

C++类继承访问权限:一、派生类对象1.public继承:派生类对象无权限访问基类private成员;派生类对象无权限访问基类protected成员;派生类对象有权限访问基类public成员。2.protected/private继承:派生类对象无权限访问基类任何成员。二、派生类成员函数1.public继承:派生类成员函数无权限访问基类private成员;

2013-08-12 14:20:12 1329

Java源码AST解析和混淆工具类

基于javaparser实现的java源码AST解析和混淆,而不必基于字节码。一行代码即可引用:CodeParser.codeParser("Java代码")。通过AST解析后,混淆代码的方法名、参数、变量名,可全部替换为空格或a ~ z、A ~ Z字母。也可用于检测语法错误。

2022-10-09

linux_syscall_support.h

下载google breakpad源码,编译会报错:lss/linux_syscall_support.h缺失。

2021-08-03

LauncherViewPager.zip

Android自定义控件,仿Launcher实现分页功能,滑动屏幕可翻到下一页。通过继承ViewGroup自定义实现ITEM位置计算、翻页滑动效果。

2020-08-11

Android Native Service

Android Native Service

2017-05-27

android gdbserver

针对android的gdbserver adb push gdbserver /data/ 即可使用

2014-10-31

giflib代码库

giflib gif图片格式解析,纯c语言代码库。

2014-07-02

Oracle学习资料

Oracle公司内部培训资料 据说如此哦…… 不管真假 对学习Oracle还是有点用的 亲 谁用谁知道哦…

2012-04-29

C、C++笔试面试题

个人曾经用过的一些C、C++笔试面试题,无常分享之~~~

2012-01-13

C语言深度解剖.pdf

C语言深度解剖 程序员笔试面试的有力助手 流传甚广

2012-01-01

空空如也

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

TA关注的人

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