![](https://img-blog.csdnimg.cn/20191212083100394.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android
文章平均质量分 70
得食猫
这个作者很懒,什么都没留下…
展开
-
Kotlin关键字一——var与val
var和val中最常用的两个关键字原创 2022-11-21 22:38:20 · 2942 阅读 · 1 评论 -
Kotlin关键字二——constructor和init
kotlin构造函数及相关关键字: constructor 和init原创 2023-12-08 15:01:59 · 627 阅读 · 0 评论 -
Kotlin关键字三——fun与方法
前两节笔记分析了及,这次看下修饰方法的关键字fun。原创 2024-04-13 08:42:33 · 923 阅读 · 0 评论 -
Android中使用Flutter的版本
使用Flutter开发Android项目的同学相信都有这个体会: 打包的apk并没有使用Flutter中设置的版本,每次都要单独gradle中维护Android的版本名和版本号。Flutter项目的版本是在yaml文件中设置的这种带**+**形式命名的版本在Flutter中很常见,在我们引入依赖库都是这样的,但Android工程中却很少见,但作为应用开发这个version实际上没有用到。原创 2023-08-04 09:59:33 · 672 阅读 · 0 评论 -
CMakeLists常用方法
我们在编译一个C/C++项目时有时候是需要我们阅读编译脚本来确定编译时的参数。CMakeLists.txt是比较常见的编译脚本,这里简单介绍几个常用的函数。原创 2022-10-24 23:50:01 · 360 阅读 · 0 评论 -
flutter——socket填坑
在flutter中使用socket可能会遇到一些问题原创 2022-07-14 22:38:29 · 1954 阅读 · 1 评论 -
Android12 exported适配
当我们设置targetSdk 31(即Android12) 时可能会导致应用无法编译\安装成功。这是因为在Android12以后需要对 包含的四大组件需要显示声明exported属性。1 自己项目的AndroidManifest那只需要在相关的四大组件上添加 android:exported="true"或android:exported=“false” 就可以了2 aar或sdk中的AndroidManifest由于aar或sdk是由别人提供的,我们并不方便修改代码,不过......原创 2022-07-02 19:47:08 · 2147 阅读 · 1 评论 -
gradle迁移到gradle.kts(复制可用)
为什么要升级到gradle.kts? 很简单,就是因为gradle.kts带提示功能。本人将针对AndroidStudio的默认构建脚本进行升级。环境Android Studio: Android Studio Arctic Fox | 2020.3.1 Patch 2gradle: 7.0.2gradle-plugin: 7.0.2迁移整个工程一共有3个gradle文件,setting.gradle、Project的build.gradle和Moudle的build.gradle,升级哪个文件原创 2022-06-22 21:46:08 · 4756 阅读 · 1 评论 -
主module不能引用子module资源文件
组件化开发时有时候我们无法引用底层module的资源文件原创 2022-06-19 23:45:04 · 2707 阅读 · 0 评论 -
BottomSheetDialog
bottomSheetDialog原创 2022-06-03 09:35:37 · 220 阅读 · 0 评论 -
Dart入门——Iterable
文章目录遍历索引取值where、firstWhere、singleWhereevery 和 anytakeWhile 和 skipWhileMapping在Dart中Iterable是一个接口,常用的集合类List、Set、Map的遍历都可以通过Iterable来实现。遍历void main(){ Iterable<int> a = [4, 5, 6]; // a的类型实际为List<int>,而List为Iterable的子类 print(a.runtime原创 2022-05-27 21:32:45 · 861 阅读 · 0 评论 -
Dart入门——类
Dart是面向对象的语言,其用法和大部分面向对象语言如java很相似。此外Dart还有很多特有的语法。命名式构造函数Dart中可以为构造函数命名:class Person { String name; int age; Person(this.name, this.age); }...原创 2022-05-26 16:53:58 · 203 阅读 · 0 评论 -
Flutter error——onNewIntent overrides nothing
近日接收同事的项目,运行时报了下面的错:大概意思是AssetsAudioPlayerPlugin没有实现PluginRegistry.NewIntentListener中的onNewIntent方法。而PluginRegistry是位于io.flutter.plugin.common包中,这个是flutter核心包,而在同事的电脑上运行是完全没有问题的,怀疑是flutter SDK的版本不一致导致。和同事确认他的为2.10.4而我的为3.0,降低版本统一为2.10.4后解决。...原创 2022-05-25 14:30:53 · 537 阅读 · 0 评论 -
Dart入门——基本语法
Flutter的开发语言是Dart,在学习Flutter前需要先要学习Dart语法。原创 2022-05-24 21:17:51 · 516 阅读 · 0 评论 -
Jetpack——WorkManager
背景公司自己写的数据分析,额…希望每半小时上报一次。之前是用的Service,但在Android文档关于内存优化部分提到使用完Service后要将其停止,像这种周期性任务功能上来说是肯定不能停的。而Jetpack刚刚好提供了后台任务WorkManager,试着用它实现下。WorkManager 简介先看它的使用场景向后端服务发送日志或分析数据定期将应用数据与服务器同步这个的使用场景...原创 2020-04-06 08:35:49 · 307 阅读 · 0 评论 -
Android插件开发—— Hypnus
前言Hypnus是古希腊神话中的睡神,已Hypnus命名这个插件是希望我们程序员能够得到更多的休息,远离ICU。由于项目越来越大,不管是用模块化还是组件化从点击运行按钮到项目编译完成需要一段时间,Hypnus要做的就是在编译完成后能够以音乐的形式通知到我们开发者(现在AndroidStudio在处于后台时候编译完成是有通知提示的,但我要做的是希望能够解放我们的双眼)。这样我们开发者可以在不影响...原创 2020-01-24 18:31:53 · 837 阅读 · 1 评论 -
Jetpack之数据库——Room
Room是Jetpack提供的数据库框架,支持kotlin语言,支持Rxjava调用方式。Room使用添加依赖dependencies { def room_version = "2.2.2" implementation "androidx.room:room-runtime:$room_version" // For Kotlin use kapt i...原创 2020-01-18 16:51:28 · 750 阅读 · 0 评论 -
Android数据库——GreenDao使用
我想大部分使用greendao的朋友都说因为这张图原创 2020-01-11 19:12:03 · 241 阅读 · 0 评论 -
Android数据库——SQLite
数据类型SQLite支持Integer、varchar、float、double、char、text数据类型,其中varchar和char支持指定长度。常用SQL语句创建表:create table 表名(字段名 数据类型 约束,字段名 数据类型 约束…)其中约束包含是否为主键、外键、是否自动增长、是否为空、是否唯一、默认值、是否大于某个值等等create table person...原创 2020-01-09 08:16:43 · 225 阅读 · 0 评论 -
WebView常见问题
1. 添加https的证书验证需要重写WebViewClient中的shouldInterceptRequest方法对请求进行拦截,而且只能对get请求进行验证,post在这里无法获取到请求参数,代码如下:override fun shouldInterceptRequest(view: WebView?, request: WebResourceRequest?): WebResourceR...原创 2019-12-29 07:43:49 · 285 阅读 · 1 评论 -
Android应用分身检测
最近app在推广过程中发现有大量的用户使用小号来领取邀请奖励,而小号的操作往往是利用多开软件开启应用分身来登录。为此,我需要区分出本体和克隆体。当今市面上流行的分身主要有三类1.修改Framework手机厂商实现的分身功能就是用这种方式实现的检测方案:手上有个小米测试机,正好自带分身,通过getFileDir()的api试了下,在本体得到的是data/data/com.xxx.xxx/fi...原创 2019-12-29 07:39:27 · 3562 阅读 · 0 评论 -
gradle下依赖cache的使用
背景前两天接手了其他公司的一个项目,项目中大量引用了该公司自己写的依赖,并且这些依赖项目都放在了公司内部的局域网仓库。如何能将这些依赖成功引入到该项目就成了我马上要解决的问题。解决方案方法一为我添加局域网的访问权限问题:这个肯定是最简单的,有了访问权限就可以跟使用外网公共仓库一样了,但是该公司有规定,不能为我开放访问权限。。。方法二将依赖包(.aar、.jar)发给我,将依赖改成项目...原创 2019-12-28 11:56:02 · 2297 阅读 · 5 评论 -
Retrofit使用https
最近CTO使用第三方app评测工具检测到项目中没有使用https。接口的请求地址都是https的只是都设置了忽略证书…证书在PC上https的证书是cer格式,但是Android的似乎不支持,反正我使用cer的证书报了"Trust anchor for certification path not found"这个错误。网上看到有人将cer证书转换成bks证书问题就完美解决了。BKS证书制作...原创 2019-12-28 11:32:36 · 221 阅读 · 0 评论 -
去除TextView后面的省略号
我们知道当我们把TextView的行数设置为1行时,如果文字内容超过了行宽那么文字最后会已…来表示。近期产品有个变态的需求:文本框单行显示,超出的文字直接截取,末尾不显示…。 接到需求时,我本以为设置下面属性就OK了android:singleLine="true"android:ellipsize="none"开始看着确实满足要求了,但是后面却发现有些文字被截成了一半!!!记住,不是文字内容截原创 2016-08-31 23:20:10 · 2497 阅读 · 0 评论 -
EditText光标颜色
EditText有一个属性:android:textCursorDrawable,这个属性是用来控制光标颜色的让光标颜色和text color一样android:textCursorDrawable="@null"原创 2016-08-31 23:25:55 · 404 阅读 · 0 评论 -
Kotlin基础——类和继承
1.类的创建插件安装好之后可以直接通过菜单像创建java类一样进行kotlin类的创建 经过上面的两次点击我们可以得到如下的类:class Test {}和java看不出任何区别:class 关键字,类名,大括号包裹的类主体。2.构造函数与java的构造函数不同的是,kotlin的构造函数分为主构造函数和二级构造函数。2.1主构造函数主构造函数是类头原创 2017-07-06 16:58:23 · 306 阅读 · 0 评论 -
Android 编译时异常
1. Apostrophe not preceded by \ XXX某些字符未被转译,我遇到的是 ’ 没有转译,写成\’ ok。原创 2019-12-08 13:02:37 · 3730 阅读 · 2 评论 -
AIDL入门
以前面试被问到AIDL我就觉得害怕,因为项目中没用到啊。但面试回来后往往又忘记再学习下,下次面试依旧不会。最近学习了下,感觉并没有那么难。什么是AIDLAIDL全称“Android Interface Definition Language”,Android接口定义语言。是Android系统上用于进程和进程间通信。AIDL的实现实现这样一个案例,DemoB获取DemoA中SharePref...原创 2019-12-08 11:32:57 · 128 阅读 · 0 评论 -
layout_weight的使用
最近在看写公开视频,发现layout_weight跟我以前所认知的略有不同,在这总结下。在LinearLayout中的子控件使用layout_weight属性可以让子控件按照父控件的一定比例来显示,先看几个常规的使用方法1 子控件与子控件按照一定比例显示<LinearLayout android:layout_width="match_parent" android:l...原创 2019-11-30 11:57:14 · 985 阅读 · 0 评论 -
Android 运行时异常
1 < a href=’ '>Rerun</ a>完整日志是Install failed.Installation failed< a href=' '>Rerun</ a>产生这个问题是有很多原因的,具体看EventLog才是关键出现这个问题我的EventLog是这样的:Failed to commit install sessio...原创 2019-11-28 08:54:47 · 1214 阅读 · 0 评论 -
Android 自定义lint浅尝
什么是lint就是我们在写toast时候忘记写show()编译器给我们那个提示。专业的解释是静态代码分析,能够在代码运行前检测出可能出现的问题。lint的本质是定义了某些代码的使用规则。如Toast的使用规则就是在使用makeText后要调用show()方法。为什么要自定义lint希望我们自己写的代码在使用是遵守某一使用规则时,而在未遵守该规则调用的情况下能够给出提示。...原创 2019-10-12 08:31:34 · 420 阅读 · 0 评论 -
Android优化-Zipalign
整理自:http://www.cnblogs.com/xirihanlin/archive/2010/04/12/1710164.htmlAndroid SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化。在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率。因此,这种方式能够让应用程序和整个系统运行得更快。我们强烈推荐在新的和已经发布转载 2016-07-26 20:03:14 · 344 阅读 · 0 评论 -
设置Eclipse单行文本长度
设置Eclipse单行文本长度在我们编写代码是经常会遇到这种情况:写的好好的代码,格式化之后反而显得更难看了,一个语句就多一个字符的长度就被拆成了两行。 这里教大家一个设置单行文本长度的方法:1,2. 3.原创 2016-08-03 21:56:41 · 1799 阅读 · 0 评论 -
常见不透明度16进制转换
在开发过程中总是遇到设计妹子给出的色值带有透明度,每次都自己算一遍,实在太麻烦了,花了点时间总结了常用的不透明度和16进制的转换,以后可以拿过来直接用了: 不透明度 十六进制 100% FF 95% F2 90% E6 85% D9 80% CD 75% BF 70% B3 65% A6 60% 99 55% 8C原创 2016-08-21 22:01:02 · 3442 阅读 · 0 评论 -
自定义View——canvas画曲线图表
最近产品说要在项目中加个图表,虽然Android已经有很多成熟的关于图表的框架,但为了这个项目中一两个图表而多引入一个框架觉得有点浪费,所以就想自己动手写一个。先上图:好在这个图并没有那么复杂,先对这个进行步骤拆分: 0.准备工作 1.确定动态数据 2.确定原点 3.绘制X轴 4.绘制Y轴 5.绘制曲线0. 准备工作定义一个类,让它继承自View…,这部分就不啰嗦了。1. 确定动态数据原创 2016-11-12 14:43:00 · 1639 阅读 · 0 评论 -
apk前缀debug、release、unaligned的区别
apk前缀debug、release、unaligned的区别在做android开发过程中总是看到这几个apk: app-debug.apk app-debug-unaligned.apk app-release-unaligned.apk app-release.apk四个文件中包含三个关键字:debug、release、unaligned app-debug.apk app原创 2016-07-22 08:45:01 · 8322 阅读 · 0 评论 -
更改greenDao的模板——public属性
背景近日公司开启了一个新项目,greenDao的引入和使用由我负责。由于之前没有使用过,同事在对象操作时把对象定义成了public属性,且没有get、set方法。当引入greenDao之后,可想而知,他写的模块全部飘红~~~。开始时候我们直接把greenDao生成的private属性改为public,暂时解决了问题,可是每次生成代码后都需要更改。在大神的点拨下,尝试着更改greenDao的生成原创 2016-12-03 09:07:04 · 820 阅读 · 0 评论 -
ImageLoader防盗链
0.背景公司是做和金融相关的,最近领导要整加密,对于图片这种要做防盗链处理,之前的加载图片的框架使用的ImageLoader,但并未听说过有这方面的api(如果有麻烦告诉下,谢谢)。幸好对http还是有简单了解,知道这个的处理无非就是在http请求中添加头或者其他信息。本着这个方向,开始向ImageLoader源码中挖掘。1.寻找网络请求我们在使用ImageLoader的时候一般是如下调用方式; I原创 2017-03-11 08:04:14 · 362 阅读 · 0 评论 -
Kotlin写Android(一)——开发环境搭建
0 背景近日,以前的领导找到我,让我给做个项目。嗯~,项目很简单,就是一个题库,但想在做的过程中学点东西,就想到了之前朋友跟我提的用kotlin写项目,于是就想在这次项目中学习学习。写这个也算是对自己学习的总结。目前项目尚未开始,中间有说的不对的地方还希望大家能指出。1 插件下载开发工具当然是用Android Studio,在插件中搜索kotlin,如下图: 安装过程比较久,也可能中间失败,多试几原创 2016-12-31 00:09:00 · 1080 阅读 · 0 评论 -
Android Studio多渠道打包
0 背景现在渠道号好像都是App必备的了,不管产品有没有对渠道进行统计,反正代码里面你要加上。类似的现象还有很多,反正就是加大了开发人员的工作量,耗费了手机的性能、流量、电量,到时候就是一个图表,还不看,更不要说根据那个图表做什么改进。不吐槽产品了,还是先看看技术上怎么实现吧。1 设置渠道号早期我使用的是友盟,那时候开发工具还是eclipse,是在Manifest文件中定义一个标签,如下所示:<me原创 2017-05-29 08:39:54 · 412 阅读 · 0 评论