- 博客(29)
- 资源 (7)
- 收藏
- 关注
原创 BuildApkPlugin 自动化编译打包
Gradle插件,依赖进项目工程,编译APK,使用Task命令一键上传apk到三方平台,如:蒲公英。(目前暂时只支持蒲公英,可以进行扩展)。 上传成功后,如果你需要提醒其他人员进行版本更新,如:钉钉群、飞书群、企业微信群等(还可扩展其他),配置相关参数,自动发送更新消息到群里。............
2022-06-23 20:28:53
570
1
原创 Android kotlin之数据类和密封类(3)
1.数据类经常创建一些只保存数据的类。 在这些类中,一些标准函数往往是从数据机械推导而来的。在 Kotlin 中,这叫做数据类并标记为data:data class Person(val name: String, val age: Int)复制在很多情况下,我们需要复制一个对象改变它的一些属性,但其余部分保持不变。copy()函数就是为此而生成。对于上文的User类,其实现会类似下面这样:data class User(val name: String , val ag...
2020-06-15 17:30:12
663
原创 Android kotlin之对象和类(2)
类Kotlin 中使用关键字class声明类class Invoice { /*……*/ }属性Kotlin 类中的属性既可以用关键字var声明为可变的,也可以用关键字val声明为只读的。class Address { var name: String = "Holmes, Sherlock" var street: String = "Baker" var city: String = "London" var state: Str...
2020-06-11 15:41:11
467
原创 Android的屏幕刷新原理
Android的屏幕刷新中涉及到最重要的三个概念:CPU:执行应用层的measure、layout、draw等操作,绘制完成后将数据提交给GPUGPU:进一步处理数据,并将数据缓存起来屏幕:由一个个像素点组成,以固定的频率(16.6ms,即1秒60帧)从缓冲区中取出数据来填充像素点总结一句话就是:CPU 绘制后提交数据、GPU 进一步处理和缓存数据、最后屏幕从缓冲区中读取数据并显示我们很容易想到一个问题,屏幕是以16.6ms的固定频率进行刷新的,但是我们应用层触发绘制的时机是完.
2020-06-09 18:42:57
628
原创 Android 之 AndroidX 库
按照官方文档说明 AndroidX 是对 android.support.xxx 包的整理后产物。由于之前的 support 包过于混乱,所以,Google 推出了AndroidX。由于在后续版本中,会逐步放弃对 support 的升级和维护,所以,我们必须迁移到 AndroidX。...
2020-06-03 19:34:48
1212
原创 Android Kotlin之数据类型(1)
1.变量Kotlin中有两个关键字定义变量 var 和 valval是一个只读变量,这种声明变量的方式相当于java中的final变量。一个val创建的时候必须初始化,因为以后不能被改变。var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和Java中声明变量的方式一样。const关键字: const修饰的val变量相当于java中static final是真正意义上的java常量2.常量 Byte Char ShortInt Dou...
2020-05-27 18:58:17
1278
原创 Android之RxJava2
RxJava 以观察者模式为骨架,在 2.0 中依旧如此。不过此次更新中,出现了两种观察者模式:Observable ( 被观察者 ) / Observer ( 观察者 ) Flowable (被观察者)/ Subscriber (观察者) 1.被观察者 (小说),开始连载,读者订阅小说(subscribe),那么小说更新后 就会推送消息给读者。 // 步骤1:创建被观察者 Observable & 生产事件// // 即 连载小说,读者订阅小说,
2020-05-25 19:32:48
311
原创 JAVA之多线程并发详解
线程和进程区别 线程: 1)进程中负责程序执行的执行单元 2)依靠程序执行的顺序控制流,只能使用程序的资源和环境,共享进程的全部资源 3)有自己的堆栈和局部变量,没有单独的地址空间 4)CPU调度和分派的基本单位,持有程序计数器,寄存器,堆栈 进程: 1)系统资源分配和调度的独立单位 2)至少包含一个线程 3)拥有自己的资源 线程的创建方式 源码:1).继承Thread类,实现run方法 ...
2020-05-21 18:07:56
264
原创 JAVA 回收机制详解
C的垃圾回收是人工的,工作量大,但是可控性高。java是自动化的,但是可控性很差,甚至有时会出现内存溢出的情况,内存溢出也就是jvm分配的内存中对象过多,超出了最大可分配内存的大小。jvm会在什么时候进行回收 1.会在cpu空闲的时候自动进行回收 2.在堆内存存储满了之后 3.主动调用System.gc()或者 Runtime.getRuntime().gc()后尝试进行回收。(ps:调用System.gc()或者 Runtime.getRuntime().gc()只是告诉虚拟机要回收,但.
2020-05-21 17:26:02
390
原创 Java双向队列Deque
Deque的使用场景在一般情况,不涉及到并发的情况下,有两个实现类,可根据其自身的特性进行选择,分别是:LinkedList 大小可变的链表双端队列,允许元素为插入null。 ArrayDeque 大下可变的数组双端队列,不允许插入null。 ConcurrentLinkedDeque 大小可变且线程安全的链表双端队列,非阻塞,不允许插入null。 LinkedBlockingDeque 为线程安全的双端队列,在队列为空的情况下,获取操作将会阻塞,直到有元素添加。注意:LinkedList
2020-05-18 19:27:44
3219
原创 Android 屏幕适配的几种方法
android中的dp在渲染前会将dp转为px,计算公式: px = density * dp; density = dpi / 160; px = dp * (dpi / 160) 而dpi是根据屏幕真实的分辨率和尺寸来计算的,每个设备都可能不一样的。1.屏幕分辨率限定符适配根据当前市面上手机的屏幕的分辨率创建不同的文件夹,系统运行的时候,会自动去选择读取对应的文件夹中的xml,即每种屏幕分辨率的设备需要定义一套 dimens.xml 文件缺点是:假设我.
2020-05-12 15:40:50
4642
2
原创 微信小程序(三),小程序的生命周期
每个小程序都需要在app.js中调用App方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。 /** 生命周期回调—监听页面加载 * * 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径 中的参数。 */ onLoad( /** 打开当...
2020-05-11 15:59:59
312
原创 微信小程序(二),sitemap 配置
sitemap 配置小程序根目录下的sitemap.json文件用来配置小程序及其页面是否允许被微信索引。小程序根目录下的sitemap.json文件用于配置小程序及其页面是否允许被微信索引,文件内容为一个 JSON 对象,如果没有sitemap.json,则默认为所有页面都允许被索引{ "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.htm...
2020-05-11 14:26:02
707
原创 微信小程序开端(一),app.json全局配置
微信小程序开发目录:├── app.js├── app.json├── app.wxss├── pages│ │── index│ │ ├── index.wxml│ │ ├── index.js│ │ ├── index.json│ │ └── index.wxss│ └── logs│ ├── logs.wxml│ └── logs.js└── utils一.小程序根目录下的app.json文件用来对微...
2020-05-09 17:35:04
320
原创 Android 开发日志之LBS相关开发
根据公司业务需求的展开,需要接入地图,并且在地图上画轨迹曲线以及自定义画区域等等。地图api可以接入百度,高德,或者google。下面以项目接入的高德地图api为例;高德开放平台文档:https://lbs.amap.com/api/webservice/guide/create-project/get-key;按照项目具体需求下载相应的SDK,放入项目libs中;(注意为了兼容...
2020-04-29 15:01:55
695
原创 Android 控件备用收集
1.CardView卡片式布局CardView适用于实现卡片式布局效果的重要控件,由appcompat-v7库提供,实际上CardView也是一个FrameLayout,只是额外提供了圆角和阴影效果,看上去有立体的感觉。一般CardView都用在ListView的item布局中。 compile 'com.android.support:appcompat-v7:25.2.0' c...
2020-04-28 11:31:48
182
原创 android MVVM框架踩坑之旅
1.Cause: couldn't make a guess for {Class Name}错误分析:问题出在type引用对象 的包名中包含了大写<variable name="ss" type="cn.hand.myapplication.MyHandlers" />解决方法:包路径都为小写总结:代码书写要规范,...
2020-04-27 11:35:40
607
原创 热修复Tinker 集成bug
1.Caused by: com.tencent.tinker.loader.TinkerRuntimeException: Tinker Exception:applicationLike must not be null.2.Error:java.lang.RuntimeException: Annotation processors must be explicitly ...
2020-04-24 15:19:09
1725
2
原创 插件化BUG编译收集
Error:FAILURE: Build failed with an exception.* What went wrong:Task '' not found in root project 'android-visualizer-master1'.* Try:Run gradle tasks to get a list of available tasks. Run with...
2020-04-22 17:52:40
210
原创 android apk包大小优化详解
1.使用开发工具 android studioBuild > Analyz APK2.文件说明assets:存放一些配置文件res:资源文件,图片、字符串、xml等classes.dex:字节码文件resources.arsc:编译后的二进制资源文件META-INF:存放的是签名信息,用来保证apk包的完整性和系统的安全。接下来就从res,classes.dex ...
2020-04-14 11:56:23
2950
原创 去掉在Android P上的提醒弹窗 (Detected problems with API compatibility)
在 Application 中调用 closeAndroidPDialog 即可private void closeAndroidPDialog(){ if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.O_MR1) { try { Class aClass = Class.fo...
2020-04-02 16:40:49
629
原创 android文件图片存储以及调用问题
1.配置文件AndroidManifest.xml 添加权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><uses-permission android:name="android.permission.READ_EXT...
2020-01-19 11:23:52
33401
原创 打Jar包,以及混淆
1.在已有工程下NEW NEW Module, 创建 一个android library.2.把需要的代码写入library工程里面,提供外部调用类,方法。3 在buld.gradle 里面apply plugin: 'com.android.library'android { compileSdkVersion 28 defaultConfig {...
2019-08-02 10:13:55
1665
原创 Android 之adapter
Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在Android中与Adapter有关的所有接口、类的完整层级图。在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展。比较常用的有 Base Adapter,Impleader,Adapter,Counteradaptation等。BaseAdapter是一个
2016-09-02 18:37:54
225
原创 Android之 二维码导入
现在二维码越来越流行,到处可以见二维码,扫一扫就可以传输信息。目前大多都是应用Google的开源码 zxing。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。ZXing库主要类下面给大家介绍一下,ZXing库里面主要的类以及这些类的作用:CaptureActivity。这个是启动Activity 也就是扫描器。CaptureActivityH
2016-08-19 15:10:51
504
原创 android之cookie
1 . 什么是CookieCookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自
2016-08-19 11:47:22
603
原创 Android之WebView 超时操作
WebView作为承载网页的控件,在网页显示的过程中会产生一些事件,并回调给我们的应用程序,以便我们在网页加载过程中做应用程序想处理的事情。比如说客户端需要显示网页加载的进度、网页加载发生错误等等事件。由于现在项目中部分页面图片之类的资源很多,导致数据传输量很大,一定概率会出现空白页面,也就是资源加载超时导致的。为了解决这个问题,目前解决的思路是:通过计时器来控制同一个资源是否超时加载,如
2016-08-19 11:14:17
14512
原创 android之Okhttp连接https添加自产证书
使用Okhttp作为android的网络框架已经流行很久了,如果不需要考虑网络数据安全性问题,仅使用http就已经足够啦。目前项目需要添加支付功能,为了确保数据的安全性,使用https,但是使用的证书不是购买的,是自产的证书。这就产生了问题,怎么样在OKhttp基础上支持https自产证书。
2016-08-19 10:17:55
1512
原创 打开/关闭系统的软键盘
1、关闭系统的软键盘public static void dismissSoftKeyboard(Activity activity) { View view = activity.getWindow().peekDecorView(); if (view != null) { InputMethodManager inputmanger
2016-03-02 16:35:49
1456
library.rar
2020-04-03
Android JNI环境配置流程.docx
2020-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人