
技术
文章平均质量分 54
星辰旋风
安卓开发
展开
-
笔记 android悬浮窗的拖动实现踩坑
想要实现一个可拖动的悬浮窗,原理上非常简单:根据action_move时的event坐标偏移,去修改view的位置即可。但是实际实现上踩了个小坑。getRawX() 和 getX() 的区别。原创 2023-01-10 11:04:54 · 863 阅读 · 0 评论 -
管道、xargs、-exec的介绍与区别
管道command1 | command2用竖线分割两个命令,把第一个命令的输出,作为第二个命令的输入。 此时需要第二个命令支持这种从管道获取输入的功能,例如cat ls就支持这种功能。xargscommand1 | xargs command2xargs和管道类似,都是把第一个命令的输出传递到第二个命令。与管道不同的是,管道给第二个命令传递是直接传到命令输入上,这种方式要求命令本身的支持,支持的命令较少。而xargs,则是把第一个命令的输出作为参数传递到第二个命令上..原创 2021-05-31 19:52:33 · 5754 阅读 · 0 评论 -
android工程编译速度优化
android工程在越来越复杂后,编译速度会越来越慢,逐渐对开发效率带来很大的影响。本篇记录一些常见的编译速度优化的方式。一、 各种常见编译参数的配置和gradle、kotlin版本的更新网上关于这些编译参数的文档已经非常多了,我这里不想把这些参数再重复讲一遍,也没有这个必要。大部分对编译速度有帮助的编译参数,都随着gradle版本的升级,变成了默认值。所以只要把gradle版本升级到最新版本,基本上网上能看到的有用的编译参数都无需再去配置了。如果有使用kotlin,建议把kotlin相关版本,原创 2021-02-28 17:13:35 · 2193 阅读 · 0 评论 -
打npm包的步骤
打npm包的步骤使用parcel编译,parcel build ./index.ts --no-source-maps --target node --bundle-node-modules加上–no-minify可以设置不混淆package 中配置name , version ,main ,files 等下面是一个例子:{ "name": "mypackage", "version": "0.0.1", "main": "dist", "files": [ "co原创 2021-01-31 18:22:51 · 816 阅读 · 0 评论 -
JS 脚本动态执行 动态生成Function / 三个点运算符(扩展运算符)
最近有个这样的需求,要在我们的后台界面上,让平台使用者可以输入一段脚本,然后在nodejs层,读取这个脚本并执行。并且还要支持自定义输入参数的能力。研究了一下Function的使用,记录在这里。interface FunctionConstructor { /** * Creates a new function. * @param args A list of arguments the function accepts. */ new(...args:原创 2020-12-29 19:31:38 · 1685 阅读 · 2 评论 -
js超长number精度丢失问题——结论:number无解,换string才是正途
最近发现了一个线上问题,用户的信息获取错误。多方调试后发现,我们的userId太长了,超过了js支持的精度范围,发生了精度丢失的问题。比如一个userId:12345678900011137,在js里,如果使用number类型的话,实际会变成 12345678900011140 。看到了吗,js自带的坑,而且坑的还不是位数变化,位数没变,但是最后一位四舍五入了!!!经过各种查资料、咨询、调试、测试……最后确定,js number 对这个情况无解。换BigInt long bignumber 之类的原创 2020-09-24 16:20:29 · 6168 阅读 · 1 评论 -
git format-patch 、 git diff 、git apply 的使用
通过git format-patch 、 git diff 、git apply 三个命令,可以生成patch和打入patch,用于在多个git仓库间传递代码的情况。比如不想提交代码,但是要把代码传给其他协作者,就很适合用这个方式。git format-patch# 把当前没push的提交都打成一个patch git format-patch origin# 把commitid1 和 commitid2 间的提交打成一个patch git format-patch commit原创 2020-08-10 16:52:08 · 2986 阅读 · 0 评论 -
记录一个dart里的低级但常犯的语法错误 ( forEach vs any )
下面这是一段我们常写出的代码,注意其中的forEach函数,大家看看它的输出是什么。void main(List<String> arguments) { print(Test.inList('1')); Test.list.add('1'); print(Test.inList('1'));}class Test { static var list = <String>[]; static bool inList(String template) {原创 2020-07-22 16:50:21 · 928 阅读 · 1 评论 -
git 同步超大仓库失败的解决办法
git 同步超大仓库的时候,会报如下错误git fetcherror: git upload-pack: git-pack-objects died with error.iB/sfatal: git upload-pack: aborting due to possible repository corruption on the remote side.fatal: the remote end hung up unexpectedlyfatal: early EOFfatal: index原创 2020-05-13 19:32:36 · 5787 阅读 · 0 评论 -
用find命令查找最近修改过的文件
用find命令查找最近修改过的文件查找最近一分钟内修改过的文件find . -mmin -1原创 2020-04-22 20:14:54 · 1323 阅读 · 0 评论 -
以普通用户启动的Vim如何保存需要root权限的文件
在Linux或mac上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行:wq保存退出,突然蹦出一个错误:E45: 'readonly' option is set (add ! to override)这表明文件是只读的,按照提示,加上!强制保存::w!,结果又一个错误出现:"readonly-file-name" E212: Can't open file...转载 2020-02-27 15:50:50 · 452 阅读 · 1 评论 -
emacs操作简介
emacs操作简介文件编辑emacs是由GNU组织的创始人Richard Stallman开发的一个功能强大的全屏文本编辑器,它支持多种编程语言,具有很多优良的特性。有众多的系统管理员和软件开发者使用emacs。语法emacs(选项)(参数)选项+<行号>:启动emacs编辑器,并将光标移动到制定行号的行;-q:启动emacs编辑器,而不加载初始化文件;...转载 2020-01-21 16:05:00 · 450 阅读 · 0 评论 -
Android Studio Debug 的 9 个小技巧
周末看 Android Dev Summit '19 的视频的时候,看到一章关于 Android Studio Debug 的介绍,有很多日常非常有用的小技巧,学习了这些小技巧能很大程度的降低我们 Debug 的成本,快速定位问题的本质,今天就向大家介绍一下 Android Studio Debug 的 9 个小技巧。没关注的小伙伴记得关注订阅????,如果觉得这些文章有点意思,记得分享转...转载 2019-11-26 01:32:20 · 546 阅读 · 0 评论 -
一些好用的python代码片段
以下文章来源于读芯术,作者读芯术读芯术专注年轻人的AI学习与发展平台Python是一种非BS编程语言。设计简单和易读性是它广受欢迎的两大原因。正如Python的宗旨:美丽胜于丑陋,显式胜于隐式。记住一些帮助提高编码设计的常用小诀窍是有用的。在必要时刻,这些小诀窍能够减少你上网查Stack Overflow的麻烦。而且它们会在每日编程练习中助你一臂之力。1. 反转字...转载 2019-11-26 01:18:32 · 356 阅读 · 0 评论 -
GCP VM实例磁盘扩容,修改cpu和内存,修改IP地址 步骤
查看原有VM实例信息首先打开https://console.cloud.google.com/compute/instances查看我们GCP中的VM实例点击实例名进入详情可以看到我们的CPU 内存 磁盘 等信息。ssh上去,用df和lsblk查看的输出如下。创建快照在调整配置之前,先创建快照。以备不测。https://console.cloud.google.com/comp...原创 2019-10-18 23:39:55 · 8934 阅读 · 0 评论 -
AsyncTask的使用
AsyncTask可是很简单的实现异步操作。 AsyncTaskpackage com.study.test;import java.util.HashMap;import java.util.Map;import android.annotation.SuppressLint;import android.app.Activity;import android.os.AsyncTask;原创 2015-07-07 15:59:51 · 544 阅读 · 0 评论 -
Android手势操作
手势操作在我们使用智能设备的过程中奉献了不一样的体验。Android开发中必然会进行手势操作方面的编程。那么它的原理是怎样的呢?我们如何进行手势操作编程呢? 手势操作原理 首先,在Android系统中,每一次手势交互都会依照以下顺序执行。 1. 接触接触屏一刹那,触发一个MotionEvent事件。 2. 该事件被OnTouchListener监听,在其onTouch()方法里获得该转载 2015-07-09 09:45:52 · 689 阅读 · 0 评论 -
android 的四种枚举Context.MODE_PRIVATE ……
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。 Context.MODE_WORLD_READABLE和Conte转载 2015-07-08 12:51:12 · 941 阅读 · 0 评论 -
public private protected default 区别
明明很简单的问题,看了很多遍总是记不住,当时记住了,过两天就又忘了,在博客里写下来,让自己能常看看。 注:本文是转载的原文地址在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes(即同一个包),认为都是自己的朋友friendly。 1、public:public表明该转载 2015-07-07 15:01:16 · 1471 阅读 · 0 评论 -
edittext inputType 属性值
android:inputType=”none” 这个就不要解释了吧 android:inputType=”text” 文本类型,多为大写、小写和数字符号 android:inputType=”textCapCharacters” 字母大写 android:inputType=”textCapWords” 首字母大写 android:inputType=”textCapSen转载 2015-07-28 15:27:19 · 437 阅读 · 0 评论 -
<meta-data>读取方法
在AndroidManifest.xml中,元素可以作为子元素,被包含在、 、和元素中,但 不同的父元素,在应用时读取的方法也不同。 1 :在Activity的应用。 xml代码段: <activity...> <meta-data android:name="myMsg" android:value="hello my activity"></meta-data>转载 2015-08-17 15:07:13 · 1012 阅读 · 0 评论 -
dp sp px换算代码
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。 dp也就是dip,这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度转载 2015-08-17 15:08:44 · 608 阅读 · 0 评论 -
ViewPager 结合Fragment实现一个Activity里包含多个可滑动的标签页,每个标签页可以有独立的布局及响应。
ViewPager 结合Fragment实现一个Activity里包含多个可滑动的标签页,每个标签页可以有独立的布局及响应。转自:http://blog.csdn.net/lizhenmingdirk/article/details/13631813activity_main.xml[html] view plaincopy转载 2015-10-12 11:07:10 · 1623 阅读 · 0 评论 -
正则表达式30分钟入门教程
正则表达式转载 2015-09-25 13:42:24 · 327 阅读 · 0 评论 -
Java回调机制解析
转自:(http://blog.csdn.net/pi9nc/article/details/23169357) 模块之间总是存在这一定的接口,从调用方式上看,可以分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,也是我们在写程序中经常使用的;回调是一种双向的调用模式,也就是说,被调用的接口被调用时也会调用对方的接口,这句话可能有点绕,等文章后面举例说明;异步调用是一种类似消息转载 2015-12-10 16:02:04 · 461 阅读 · 0 评论 -
学习log4j
转自:http://www.codeceo.com/article/log4j-usage.html日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。一、入门实例1.新建一个JAva工程,导入包log4j转载 2015-11-26 17:21:40 · 374 阅读 · 0 评论 -
java 删除文件夹
java中File.delete不能删除非空文件夹 删除文件夹的方法 //递归删除文件夹 private static void deleteFile(File file) { if (file.exists()) {//判断文件是否存在 if (file.isFile()) {//判断是否是文件 file.delete();//删除文件原创 2015-11-30 10:29:59 · 590 阅读 · 0 评论 -
安卓判断是否安装了某软件
安卓判断是否安装了某软件 /** * * @param context 上下文 * @param packageName 软件的包名 * @return */ private boolean isApkInstalled(Context context, String packageName) { try {原创 2015-12-16 20:32:30 · 687 阅读 · 0 评论 -
JAVA 文件存储、写入
常用的代码片段,保存起来。/** * 保存对象 * * @param ser * @param file * @throws IOException */ public void saveObject(final Serializable ser, final String file) { new Thread(n原创 2015-11-17 10:43:45 · 756 阅读 · 0 评论 -
正则表达式
转自:http://blog.csdn.net/tianjian4592/article/details/7684108正则表达式:符合一定规则的表达式作用:专门用于操作字符串用一些特定的符号来表示一些代码操作,这样就简化书写,所以学习正则表达式就是在学习一些特殊符号的使用。好处:可以简化对字符串的复杂操作弊端:符号定义越多,正则越长,阅读性越差具体转载 2015-12-02 15:37:31 · 536 阅读 · 0 评论 -
html去除html标签保留文本
public static String Html2Text(String inputString) { String htmlStr = inputString; // 含html标签的字符串 String textStr = “”; java.util.regex.Pattern p_script; java.util.re原创 2015-12-03 09:32:01 · 864 阅读 · 0 评论 -
记一次使用eclipse调试出现的异常
今天使用eclipse调试,总是会报异常,但是直接运行就不会有异常,为此郁闷了很久,怎么也找不到问题所在,后来偶然看到一个东西,灵光一闪,才想到了问题所在。在此记录一下这个问题。 以下是调试时的eclipse的运行截图。 这个问题的关键,就在于右上方的Expressions窗口。 这个里面有一个cursor.moveToNext() 的监视器,本来我只是用来显示一下,cursor里有没有下一个原创 2015-12-22 17:10:35 · 1816 阅读 · 0 评论 -
关闭adb端口占用进程
1、CMD命令窗口输入:adb nodaemon server 。然后就会提示你哪个端口被占用了。2、输入netstat -ano | findstr "5037" 。然后会弹出提示告诉你哪些进程占用了该端口,记住非0地址的后面的数字3、打开任务管理器,点击“进程“,“查看”-“选择列”,勾选PID4、查找第2步中看到的数字PID,然后结束相关进程,即可转载 2015-12-23 13:50:16 · 3291 阅读 · 0 评论 -
adb 查看手机正在运行的进程
cmd命令 adb shell ps 后面可以加部分包名来过滤,如 adb shell ps tencent 也可以跟findstr结合搜索 adb shell ps | findstr tencent 原理上两种方法得到的数据应该是一样的,但是实际上第二种方法得到的数据比较多。比如手机qq的进程com.tencent.mobileqq,在第一种方法里就没有显示出来,至于原因我也不知道原创 2015-12-23 14:11:06 · 71249 阅读 · 1 评论 -
cursor遍历方法
最近在做有关contentProvider的东西,发现网上的代码对cursor进行遍历,大多是这样的: if (cursor!=null) { while (cursor.moveToNext()) { ... } }然而通过上述代码遍历会丢数据。 当查出的数据只有一条时,还会报异常。这种原创 2015-12-22 12:31:33 · 6252 阅读 · 0 评论 -
安卓系统获取ip地址
java代码public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface .getNetworkInterfaces(); en.hasMoreElements();) {原创 2015-12-08 10:26:26 · 668 阅读 · 0 评论 -
android oom 分析
转自:http://www.cnblogs.com/manuosex/p/3661762.htmlandroid oom 全解析 Android oom 有时出现很频繁,这一般不是Android设计的问题,一般是我们的问题。 就我的经验而言,出现oom,无非主要是以下几个方面: 一、加载对象过大 二、相应资源过多,没有来不及释放。 解决这样的问题,也有一下转载 2016-03-01 21:37:03 · 576 阅读 · 0 评论 -
字符串与ascii转换
1.由于项目中遇到,在服务器端起的jar包程序,给前台发消息后,前段收到的消息出现乱码情况,所以采取在后才发消息前先把消息字符串转成ASCII码再发往前台,前台采取在收到后台消息先把ASCII码转成字符串的解决方案进行解决。 1)将字符串转成ASCII的java方法 [c-sharp] view plain copy public static String转载 2016-02-18 14:59:57 · 919 阅读 · 0 评论 -
Context.getExternalFilesDir()和Context.getExternalCacheDir()方法 清除数据“与”清除缓存“功能
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?通过Context.getExternalFilesDir()方法可以获取转载 2016-03-29 14:28:33 · 1151 阅读 · 0 评论 -
sqlite基础语法
sqlite基本sql语句使用一,SQLite常见的数据类型 SQLite是无类型的。 这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中,无论这列声明的数据类型是什么(只有自动递增Integer Primary Key才有用)。对于SQLite来说对字段不指定类型是完全有效的。 即使SQLite允许忽略数据类型,但是仍然建议在你的Create Table语句中指定数据类型。 因为数转载 2015-12-17 18:32:51 · 605 阅读 · 0 评论