Mac连接京瓷打印机Fs-1030MFP/DP
1 | graph TB |
- 进入系统偏好设置。
- 打印机与扫描仪
- 添加打印机
- 选择IP
- 输入IP地址,协议选择“行式打印机监控程序-LPD”,使用那选择“普通PCL打印机”,然后系统会自动添加打印机驱动。
- OK开始打印吧
就是这么简单
1 | graph TB |
就是这么简单
应用场景:当我们的业务需要对已经存在的表进行表结构修改时,我们需要使用 ALERT 语句进行修改。
1 | ALERT TABLE tablenamme ADD |
1 | ALERT TABLE tablenamme MODIFY |
注意事项:
NOT NULL
及默认值约束,不能增加其他约束ALERT TABLE tablenamme DROP column col_name;
1 | ALERT TABLE tablenamme |
NOT NULL
约束只能在增加列和修改列的时候添加现在业务上出现客户要求如若生产环境出现紧急事件,需要版本回退的情况下,我这边的代码又没做版本分之处理,那么只能更改之前的版本号来实现。
不敢夺他人之功,原文在此处
我之前的文章:android反编译apktool—dex2jar—jdgui
在apk所在目录控制台输入下面指令,即可将文件名为source的apk反编译到outDir目录
开始反编译apk
apktool d -o outDir source.apk
或者apktool d source.apk -o outDir
打开输入目录outDir找到apktool.yml文件,编辑修改versionCode
通过以下命令就可以将目录outDir中的文件重新打包为no_sign_result.apk
apktool b -o no_sign_result.apk outDir
或者
apktool b outDir -o no_sign_result.apk
使用如下命令进行签名jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore demostore.jks -signedjar result-signed.apk no_sign_result.apk yourkey
注:
实现的效果能将json字符串以格式化的方式显示
1 | /** |
1 | Intent intent = new Intent(context,Class.forName("com.packname.Activity")); |
1 | int icon = getResources().getIdentifier(“imageid”, "drawable",getPackageName()); |
优化:
1 | public static int getDrawableId(Context context, String var) { |
getIdentifier的函数签名如下:
1 | public int getIdentifier (String name, String defType, String defPackage) |
Android 事件分发总是遵循 Activity => ViewGroup => View 的传递顺序;
从按下开始依次从Activity开始处理,然后向下分发到ViewGroup,再到最下面的View。
一般情况下,事件列都是从用户按下(ACTION_DOWN)的那一刻产生的,
负责对事件进行分发的方法主要有三个,分别是:
事件:事件就是Event
事件类型分为四种
它们并不存在于所有负责分发的组件中,其具体情况总结于下面的表格中:
dispatchTouchEvent,onTouchEvent方法存在于上文的三个组件中。而onInterceptTouchEvent为ViewGroup独有。
ViewGroup类中,实际是没有onTouchEvent方法的,但是由于ViewGroup继承自View,而View拥有onTouchEvent方法,故ViewGroup的对象也是可以调用onTouchEvent方法的。
使用 Gradle 工具检查此项目的依赖,进入项目目录,执行如下指令进行依赖检查:
1 | cd app |
打印出如下图所示的依赖树,依赖树显示了你 build 脚本声明的顶级依赖和它们的传递依赖:
1 | +--- androidx.test.ext:junit:1.1.1 |