
Android
文章平均质量分 63
zoujin6649
积跬步以至千里
展开
-
macOS安装搭建python环境
是一个常见于Debian和Ubuntu等基于Linux的操作系统中的包管理工具,用于安装、更新和移除软件包。然而,macOS使用的是Homebrew或者MacPorts等其他的包管理工具,并不使用。的功能,你可以安装Homebrew,它是macOS的一个包管理器,可以用来安装软件包。如上命令亲测有效,再使用如下命令查看Homebrew版本:brew -v。安装完成再使用如下命令查看python版本:python3 -V。如果你想在macOS上使用类似。原创 2024-08-20 21:47:58 · 627 阅读 · 0 评论 -
Kotlin源码编译报错,提示@UnsupportedAppUsage和@SystemApi声明的Java函数无法调用
Kotlin源码编译问题原创 2022-09-06 16:05:16 · 3852 阅读 · 1 评论 -
Android 蓝牙/wifi云打印机 ESC/POS热敏打印机打印(ESC/POS指令篇)
上一篇主要介绍了如何通过蓝牙连接到打印机,这一篇,我们就介绍向打印机发送打印指令,来打印字符和图片我们先来看一下最终票据打印效果图:一、ESC/POS指令ESC/POS指令体系是由EPSON发明的一套专有POS打印机指令系统,市面上绝大部分打印机兼容ESC/POS指令。由于我使用的是佳博的蓝牙打印机,我们来看一下佳博打印机背后的型号说明:上图可见,打印机是58mm纸宽的打印机,支持USB和蓝牙连接,并且支持ESC/POS命令。二、常用的打印命令手机通过蓝牙或者...原创 2020-09-22 10:17:39 · 9885 阅读 · 1 评论 -
Android 蓝牙/wifi云打印 ESC/POS热敏打印机打印(连接篇)
目录一、蓝牙打印机连接1.蓝牙权限2.初始化配置3.发现设备4.连接设备5.数据传输二、WIFI打印机连接一、蓝牙打印机连接打印机的蓝牙连接方式是基于传统的蓝牙连接方式,手机作为客户端,打印机作为服务端。我们先上效果图:1.蓝牙权限<uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android..原创 2020-09-22 10:17:30 · 7226 阅读 · 0 评论 -
Android Jetpack 学习之Navigation、BottomNavigationView
先上效果图:Navigation组件,也可以理解成FragmentNavigation。它提供了多Fragment之间的转场、栈管理,帮助我们可以更轻松的使用Fragment。在抽屉式导航栏、底部导航栏、顶部导航栏的需求中我们可以尝试使用这个新组件。甚至,可以尝试写一个单Activity的应用Navigation导航组件由以下三个关键部分组成:Navigation视图:在res/navigation包下面的xml视图资源,包括应用内所有单个内容区域以及用户可以通过应用获取的可能路径。原创 2020-07-23 18:38:26 · 1573 阅读 · 1 评论 -
Android组件化开发
https://www.jianshu.com/p/8b6e6a50e21ehttps://blog.youkuaiyun.com/u010302765/article/details/101015212https://blog.youkuaiyun.com/fjnu_se/article/details/90757880转载 2020-04-19 09:00:18 · 188 阅读 · 0 评论 -
Android Studio提示Handler的匿名内部类的内存泄露风险解决方案
首先我们看Android Studio的风险提示:我们知道,在Java中非静态内部类和匿名内部类都会隐式持有当前类的外部引用,android中使用Handler进行消息的异步处理时,最常用的定义Handler的方式如上图,使用匿名内部类的方式。但是这种写法会提示存在内存泄露的风险,因为Handler会持有匿名对象的引用,匿名对象会持有外部类对象的引用,且Handler的生命周期较为特殊,并不会...原创 2020-04-18 20:07:55 · 1015 阅读 · 0 评论 -
https通信原理之加密算法、散列算法、数字证书
对称加密对称加密,对于加密和解密算法来说,加密和解密的密钥是相同的,如同同一把锁,加密密钥和解密密钥都是相同的一把钥匙。用密钥加密后,得到加密后的密文,随后可以直接用其进行解密,得到初始的原文。对于通信的双方,通过对称加密,可以很方便的将通信内容进行加密,然后进行安全传输,能够有效的防止信息在中途被中间人获取到原文。即使信息中途有被截获的可能,但只要密钥没有泄露,信息本身还是安全的。鉴...转载 2020-04-09 00:16:50 · 1010 阅读 · 0 评论 -
RSA加密、解密、签名、验签的原理及方法
原文地址:https://www.cnblogs.com/pcheng/p/9629621.html这里只作记录,方便以后查看。一、RSA加密算法简介RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。者能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称之为公钥和私钥。如果用公钥进行加密,则只能通过对应的私钥去解密,如果...转载 2020-04-05 23:27:35 · 657 阅读 · 0 评论 -
Android Studio使用AIDL技术进行SDK开发
前面我们有介绍AIDL的基本用法:Android进程间通信——AIDLAndroid进程间通信——AIDL Binder连接池现在我们来介绍利用AIDL来实现一个简陋的SDK,将获取用户信息的方法暴露给客户端,先放工程目录:SDKServer代码实现首先作为服务端,我们创建IAuth.aidl文件,声明IAuth接口// IAuth.aidlpackage com....原创 2020-03-31 22:50:43 · 2127 阅读 · 0 评论 -
Android Studio AIDL编译时错误: 找不到符号
在使用AIDL实现跨应用通信时,我们把aidl接口复制到外部应用时,同时也复制了实现了Parcelable的User类,并把User类也放到aidl文件夹下会报这个错:解决办法一:在build.gradle添加如下配置再sync now就可以了android { ... sourceSets {//目录指向配置 main { ...原创 2020-03-29 23:39:48 · 1491 阅读 · 1 评论 -
Android进程间通信——Messenger
Messenger,通过它可以在不同进程间传递Message对象,Messenger的底层实现也是AIDL,我们可以从它的构造方法中看出public Messenger(Handler target){ mTarget = target.getIMessenger();}public Messenger(IBinder target){ mTarget = IMesse...原创 2020-03-27 22:27:17 · 341 阅读 · 0 评论 -
Android进程间通信——AIDL Binder连接池
当项目AIDL业务需求增多时,我们不可能无限制得创建Service,因此,针对这种情况,我们将所有得AIDL放在同一个Service中去管理。在这种模式下,整个工作机制是这样得:每个业务模块创建自己得AIDL接口并实现此接口,这个时候不同业务模块之间不能有耦合的,所有实现细节我们要单独开来,然后向服务端提供自己的唯一标识和其对应的Binder对象;对于服务端来说,只需要一个Service就可以...原创 2020-03-27 22:30:20 · 399 阅读 · 0 评论 -
Android进程间通信——AIDL
使用Messenger来进行进程间通信的方法,可以发现,Messenger是以串行的方式处理客户端发来的消息,如果大量的消息同时发送到服务端,服务断仍然只能一个个处理,如果有大量的并发请求,那么用Messenger就不太合适了。同时,Messenger的作用主要是为了传递消息,很多时候我们可能需要跨进程调用服务端的方法,这种情形用Messenger就无法做到了,但是我们可以使用AIDL来实现跨进程...原创 2020-03-27 22:29:05 · 408 阅读 · 0 评论 -
Coordinatorlayout、AppBarLayout、ToolBar及CollapsingToolbarLayout的巧妙使用
相信很多人都用过github上的SlidingMenu,谷歌也推荐了一种实现侧滑菜单的空间——Drawlayout一、导入老版本是需要导入v4原创 2020-03-06 23:44:06 · 888 阅读 · 2 评论 -
Android Studio 安装、环境配置、git配置
最近电脑重装了系统,需要重新配置开发环境,故作个记录,方便以后查阅。前言安装JDK,配置JDK环境。在“系统变量”中新建一个变量名为JAVA_HOME的变量,变量值为本地Java的安装目录。一些Java版的软件和一些Java的工具需要用到该变量,设置PATH和CLASSPATH的时候,也可以使用该变量,方便设置。PATH:指定一个路径列表,用于搜索可执行文件,执行一个...原创 2020-01-11 23:17:18 · 2275 阅读 · 0 评论 -
Android应用图标微技巧,8.0系统中应用图标的适配
https://blog.youkuaiyun.com/guolin_blog/article/details/79417483转载 2018-12-26 15:30:23 · 162 阅读 · 0 评论 -
Android通知栏微技巧,8.0系统中通知栏的适配
https://blog.youkuaiyun.com/guolin_blog/article/details/79854070转载 2018-12-26 15:31:13 · 139 阅读 · 0 评论 -
异常: Unfortunately you can't have non-Gradle Java modules and Android-Gradle modules in one project.
Android Studio 报异常问题:Unsupported Modules Detected: Compilation is not supported for following modules: app. Unfortunately you can't have non-Gradle Java modules and Android-Gradle modules in one proje...原创 2019-02-26 15:49:31 · 18593 阅读 · 3 评论 -
Error occurred while communicating with CMake server
Gradle sync failed: Error occurred while communicating with CMake server.使用最新的CMake版本会出现该问题,卸载3.10.2.4988404就正常了解决办法:原创 2019-04-15 17:16:45 · 1101 阅读 · 1 评论 -
gitlab配置ssh key
在clone代码的时候,我们可以选择http协议,也可以选择ssh协议来拉取代码下面我们来介绍如何用git客户端生成ssh key,然后配置在gitlab中1、打开本地git bash,使用如下命令生成ssh公钥和私钥对# -C 参数是邮箱地址$ ssh-keygen -t rsa -C 'xxx@xxx.com'2、打开~/.ssh/id_rsa.pub文件(~表示用户目...原创 2019-04-15 19:29:56 · 8288 阅读 · 0 评论 -
Android下openssl编译和使用(二)
上篇我们介绍如何编译了openssl:https://blog.youkuaiyun.com/zoujin6649/article/details/89891720接下来我们看看如何使用1、新建一个测试工程,并勾选include C++ support2、把openssl-1.1.1b/include下的openssl目录,整个复制到项目src下的cpp子目录3、把lib下的libcryto....原创 2019-05-08 18:08:49 · 1881 阅读 · 1 评论 -
Android NDK开发(二)——CMake脚本构建项目
在Android Studio 2.2 之后,工具中增加了CMake的支持,也就是说,Android Studio 2.2 之后有两种选择来编译C/C++代码,一个是上篇ndk-build + Android.mk + Application.mk组合编译,另一个是CMake + CMakeList.txt组合构建项目CMake的使用1、配置环境2、创建CMake工程方式一、在...原创 2019-05-14 18:01:11 · 592 阅读 · 1 评论 -
Android下openssl编译和使用(一)
项目中需要用到openssl库的AES加密,写下来方便以后查阅。编译1、安装Linux版本的NDK编译openssl需要使用NDK,先下载NDK:# 在home目录下建立ndk目录$ mkdir android$ cd android$ wget https://dl.google.com/android/repository/android-ndk-r14b-linux-...原创 2019-05-07 18:13:39 · 13847 阅读 · 9 评论 -
Android NDK开发(一)——ndk-build编译生成so库文件并使用
JNI简介JNI(Java Native Interface),是方便Java调用C/C++等Native代码封装的一层接口。NDK简介NDK(Native Development Kit),是Android提供的一套工具集合,通过NDK可以在Android中更加方便的通过JNI开访问本地代码。NDK提供了交叉编译,开发人员只需要简单的修改mk文件就可以生成特定CPU平台的动态库。使用...原创 2019-05-13 14:09:17 · 14242 阅读 · 2 评论 -
Android 响应系统分享,不重复启动app
最近项目中遇到几个纳闷的问题:1、当在服务进程中发一个通知Notification,点击Notification启动UI进程的某个Activity,发现MainActivity会再次被调起。2、MainActivity响应系统分享的意图时,应用再次重启一遍app,当进入任务列表查看时,会发现有两个一样的app任务,未杀掉之前的任务,并且多次响应这样的意图,则会出现多个一样的app任务。...原创 2018-09-06 16:04:30 · 513 阅读 · 0 评论