自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (4)
  • 收藏
  • 关注

原创 Visual Studio Code如何打开多个tab标签

在打开文件夹预览的模式下VS Code默认单击打开文件时仅保存一个tab,例如当前window打开一个tabA,然后点击另外一个文件B时tabA会被覆盖,并显示文件B的内容。为此有点苦恼,百度也搜索不到好的方案。方法一、双击文件——会保留原来的tabA 鼠标双击文件B,那么就会有两个标签tabA、tabB方法二、在标签右侧选择【Keep Editors Open】按照上面操作即可,因为我习惯用英文版所以显示为【Keep Editors Open】,大...

2021-09-14 23:34:47 5274

原创 git submodule详解

近期项目中遇到一个git问题,想把一个公共库项目用共享模式让在多个工程中运用。SVN有外链模式,目录共享非常方便,无奈git不像svn可以直接通过外链模式把某个目录共享给其他工程,所以只能用submodule模式。于是百度一下git submodule,发现好多博客都介绍,看的手痒,所以也就写一份git-submodule。推荐:本博客需要有git应用基础的人阅读一、工程应用模型一般submodule应用时都是存在多个工程需要使用同一个公共模块,这个公共模块相对于主工程独立——...

2020-11-08 22:07:55 1900

原创 项目实战中的防御性编程

介绍 说明,本博客中提到的工程时Android工程,其他开发者如果有疑惑的话可以在评论中指出,会继续补充。 最近几个月已经把一个中等规模的项目开发完成,进入良性迭代开发阶段,相对比较有空闲总结项目经验。因为本公司项目从零开始开发,包括需求整理之类的,这一年写博客相对少,业余时间要么休息放松,要么思考项目的需求或者解决方案之类的,项目的事情就不多少了。 经过这几年的摸爬滚打也负责过两三个完整项目,一步一步走过来,每一次项目完成进入迭代开发后都会趁着空闲时间复盘一下收...

2020-08-26 23:37:19 425

原创 plantuml如何导出大图片

plantuml是可以用伪代码生成流程图、uml类图的工具,在使用时难免遇到流程图太大或者uml类图太大,然后导出不完整问题,亦或者导出的字体不清晰,可以通过如下方法解决;导出图片的文字不够清晰,可以设置分辨率skinparam dpi 800如果图片太大,那么可以设置导出图片的尺寸scale 13500 widthscale 2200 height记住上面两个设置要在@startuml和@enduml之间。@startumlskinparam dpi...

2020-08-24 21:18:37 9697 1

原创 android还原代码混淆proguard日志的工具--retrace和SmartRetrace

介绍代码混淆时android反编译的常用方法,android SDK提供了Proguard工具,路径是ANDROID_SDK_HOME/tools/proguard命令行在ANDROID_SDK_HOME/tools/proguard/bin下,而实际的执行代码路径为ANDROID_SDK_HOME/tools/proguard/libapk经过混淆后,在闪退时只要有mapping文件,可以通过retrace工具恢复。SDK提供的retrace命令如下:java -jar retr.

2020-08-24 01:15:06 4136

原创 Java多线程篇之List与Collections集合工具类

Collections是一个Java处理集合的强大工具类,可以进排序,对集合进行简单的多线程封装。本章我们将讲解多线程封装接口Collections的List<T> synchronizedList(List<T> list)类是一个封装list对象的方法,简单点就是专门对list的内部方法synchronized,以达到多线程操作。用法如下:...

2020-05-04 23:21:05 602

原创 SimpleDateFormat多线程问题

四月份在优化一个功能时候,尝试把Date和SimpleDateFormat封装在class中,然后统一format和parse解析,以此避免重复new对象节省重复申请内存。于是就遇到了一个坑——经常出现莫名其妙的日期,打印出来时候甚至有0650年的日期,唐朝啊,难道计算机给我玩穿越?!,大家都知道一般日期是1970-01-01开始的,要么再早一些事1900-01-01开始的,不会再早...

2020-05-04 22:50:46 466

原创 android10解决NetworkInfo废弃替代NetworkInfo isConnected()问题

android10解决NetworkInfo废弃替代NetworkInfo isConnected()问题 最近新项目接近尾声,进入处理疑难杂症阶段;着手处理各种兼容性问题。在监听系统网络广播变化方面遇到了一个问题,在Android 10 (系统sdk版本29)NetworkInfo被标记为Deprecated废弃状态,就是不推荐大家继续使用了。那么我们在Android1...

2020-04-08 00:48:57 6387

原创 android各版本对应的SDK level(包括android 10)

android个版本对应的SDK level,最新包括android10.0 版本昵称 系统版本号 sdk level Android10 10 API level 29 Pie 9 API level 28 ...

2020-04-07 22:06:27 10826

原创 java多线程开发--语法糖之synchronized关键字

java多线程开发--语法糖之synchronized关键字介绍 相信接触过java多线程开发的朋友对于synchronized关键词并不陌生。在java中一切皆对象理念,每个对象都包含一个monitor,用处之一就是在多线程操作时加锁(lock)解锁(unlock)。synchronized关键字在声明之后会定义一个代码执行段block{},synchronized可...

2020-01-05 18:53:04 395

原创 如何解决logcat TAG过长时Android studio提示错误的问题

如何解决logcat TAG过长时Android studio提示错误的问题 在实际项目中有时候为了类的明明通俗易懂,不得已把类命名过长导致Android studio 提示TAG字符串过长错误,原因是Android旧版本系统对logcat的TAG长度支持最长只有23个字符长度,实际上在Android N(Android 7.0)后才解决这个问题。在低版本的Android系统中l...

2019-12-08 00:29:05 1597

原创 java构造方法不允许调用重载方法

java构造方法不允许调用重载方法 今年在搭建一个项目的基础架构的时候,遇到了一个问题,一个类的初始化对象总是得到错误的数据,从常规语法上不到赋值错误。java代码大概如下:import org.junit.Test;public class ConstructorInvokeOverrideTest { @Test public void te...

2019-11-09 22:46:54 1657 1

原创 android ndk javah命令找不到Context或者Handler等sdk的class类

android ndk javah命令找不到Context或者Handler等sdk的class类javah在ndk找不到Android相关的类Android ndk开发的时候遇到了如果引用的class是Android的class,例如Context,Handler, Surface等Android sdk的类,javah就会找不到相关的类。例如package com.pe...

2019-10-02 00:45:18 738

原创 java多线程知识点之wait和sleep的区别

java多线程知识点之wait和sleep的区别Sleep vs Waitjava虚拟机支持多线程开发。在多线程开发中我们可以用线程来启动、执行、结束某些程序控制。在多线程同步开发中我们会接触到两个不同的方法——wait 和 sleepwait和sleep都是用来控制线程的执行与等待方法。sleep方法是让当前线程延迟一段时间再执行下一句程序指令,wait不会直接让当前线程延迟控制指令...

2019-09-15 23:37:17 745

原创 c c++函数资源释放时避免goto的方法

c c++函数资源释放时避免goto的方法开发C/C++模块时,因为很多内存资源都需要自己释放,为了统一一个地方释放资源通常用goto标签在函数退出时释放资源,好处是资源统一释放,不会因为在提前return时分别释放资源导致以后修改代码遗漏释放某些资源导致死锁或者内存泄漏。以下是goto模式void goto_function() { char *buf = NULL;...

2019-09-14 00:19:55 917

原创 【笔记】mac上如何用命令行编译jni

【笔记】mac上如何用命令行编译jni 平常开发jni都是在Android studio自动关联ndk编译的,有时候编写博客为了轻量化需要用命令行模式,不会让项目太重,依赖于IDE。一、linux上如何编译jni现在流行的linux系统主要是Ubuntu centos fedora,这三个系统的内核都是linux内核,编译jni的方法也一样。编译命令如下...

2019-09-08 23:26:21 350

原创 jni如何判断两个jobject是否为同一个java对象

jni如何判断两个jobject是否为同一个java对象 jni开发时有时候需要将java对象缓存到native层,方便native层通过jni的反射方法进行回调操作。通常我们会将回调接口callback在native层存放为global reference全局引用,熟悉jni开发的都知道,jni传入到native 层的jobject生命周期仅仅是函数的生命周期,当jni函数返...

2019-09-08 22:52:55 1672

原创 【笔记】gradle命令行运行任务如何设置代理模式

gradle命令行运行任务如何设置代理模式现在Android开发android studio是官方IDE,是在IDEA社区版的基础上开发的,用gradle构建。但是Android studio有一个缺点,在大陆有防火墙的情况下有时候下载jar包总是超时失败。通常解决方案是需要再命令模式运行gradle任务来下载。有时候需要代理网络,一般都是socks。./gradlew -Dsoc...

2019-08-25 20:21:04 1209

原创 扯淡之——世界上先有鸡还是先有鸡蛋

扯淡之——世界上先有鸡还是先有鸡蛋“世界上先有鸡还是先有蛋”是一个非常著名的思辨难题,至今为止也没有标准的答案,甚至还有科学研究。蛋白质方面的研究 一只小鸡正在从蛋壳里孵化出来。 英国华威大学的马克·罗杰教授与大卫教授在帮助谢菲尔德大学进行试验研究时,发现形成鸡蛋方解石晶体硬壳的关键鸡肉蛋白“OC-17蛋白”(ovocleidin-17)的存在贯彻了整个...

2019-07-28 00:12:52 652 1

原创 如何避免循环中丑陋的break和continue

如何避免循环中丑陋的break和continue这两天逛知乎,看到一篇帖子《为何部分程序员从不使用 break 或 continue 语句?》目前工作七八年的经历来看,存在即合理,循环中绝对不使用break和continue是有点极端了,过于教条主义,但是滥用或者不注意使用break和continue会严重影响代码的可读性和扩展性,影响后期其他开发人员维护。例如以下代码f...

2019-07-21 17:44:51 1753 1

原创 c++虚函数动态联编需要避免的内存泄漏问题

c++虚函数动态联编需要避免的内存泄漏问题近期项目中跟其他开发组共同开发,底层设备控制模块的同事用C++设计了一个虚类接口,接口定义如下class MyInterface {public: virtual void function() = 0;};然后在继承实现接口时用指针动态联编delete,即class MySubClass : public MyInt...

2019-07-21 16:14:18 2688

原创 Android NDK开发如何解决logcat日志打印不全

Android NDK开发如何解决logcat日志打印不全 在Android开发过程中可能会遇到超长日志打印问题,如果日志过长如果一次性Log.d输出就会造成logcat终端只打印一部分,后面的全部打印不出来。具体原因没有查到,应该跟输出的缓存大小有关系。 在java层就遇到过,然后通过分段输出解决。最近开发NDK so发现__android_log_...

2019-07-03 23:04:36 1639

原创 Windows10如何安装windows terminal

windows10如何安装windows terminal介绍 在Build 2019大会上,微软公布了新的Windows Terminal命令行终端工具,这是一个现代化的快速终端应用程序,适用于命令行工具和shell,包括命令提示符、PowerShell和WSL。Windows Terminal应用程序带有几个新功能,如多选项卡支持,GPU加速DirectWrite/Dire...

2019-07-03 22:22:58 21191

原创 【笔记】scp如何复制文件到带空格路径的server目录

【原创】scp如何复制文件到带空格路径的server目录scp command line copy file to destination path with space.今天准备用把一个文件拷贝到远程电脑的移动硬盘上远程路径是 /media/username/My Passport注意“My Passport”带了空格符,对于路径来讲属于特殊符号。尝试一: 单引号...

2019-06-02 15:46:29 5660

原创 从Android support到Androidx

在2018年的Google IO大会上,Google推出了Androidx库,用于优化Android support library。Android support library是Google推出的用于解决Android系统历史兼容问题的一个第三方依赖库,已经成为Android studio标配,在创建工程师会默认用support library的compat基类,由于support l...

2019-05-27 01:08:03 2522 6

原创 【笔记】mac os命令行编译objective-c

【笔记】mac os命令行编译objective-c最近在学习objective-c,由于只是学习语法,所以想用命令行轻量的练习Hello.m// First program example#import Foundation/Foundation.h>int main (int argc, const char * argv[]){ NSAutor...

2019-05-05 23:49:08 1369

原创 Ubuntu18.04 如何解决编译objective-c出现undefined reference to objc_get_class

今天通过Ubuntu18.04.1安装基于gcc的objective-c编译环境,出现了一个问题,找不到objective相关的文件符号。 HelloWorld.m源码如下int main(int argc, const char* argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init...

2019-04-27 22:59:08 1056

原创 Ubuntu18.04 如何用gcc编译objective-c

objective-c是Apple系统官方的开发语言之一,最近因为项目原因需要开发IOS应用,所以就要学习objective-c。由于时间紧迫不可能一直在公司看资料练习,平常在租房时也需要看资料。编程语言本来就是实践学科,光靠看书没用,还要边看边学。苦于mac proc在工作日周一到周五放在公司,租房就没有可以开发的环境了。通过资料发现gcc在Linux上可以编译objective-...

2019-04-27 22:39:49 1269

原创 十年Java面向对象编程心路——函数与方法的概念区别

十年Java面向对象编程心路——函数与方法的概念区别 最早接触方法这个名词还是十年前刚开始学习Java的时候,老师说Java没有函数这个说法,只有方法,行为定义和C/C++的函数差不多。当初刚学会一点C/C++,对于老师的说法内心是很不认同的,一来老师是属于照本宣科类型,二来Java老师是女的,大学女老师大部分的实际编码经验少,理论和论文水平比较OK,都...

2019-04-27 17:30:10 431

原创 如何解决More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations

今天在开发时导入androidx.annotation后出现了错误:More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro'导入的build.gradledependencies { // https://mvnrepository.c...

2019-03-26 23:38:33 11234 2

原创 如何创建git账户的chroot

最近想搭建一个git仓库给团队使用,虽然git-shell,但是还是想尝试用chroot,于是折腾了一下。步骤一、 运行脚本脚本内容请看https://github.com/SweetTool/MakeChroot/blob/master/create_chroot_sharegit.sh#!/bin/sh# script to automate the crea...

2019-03-24 18:14:03 478

原创 macbook proc如何升级到10.14.3

macbook proc每次打开都推荐10.14.3,可是重启无数次总是失败,非常无奈。于是尝试用官网appstore;步骤如下:1.最新版本的mac系统为Mojave,打开浏览器进入www.apple.com然后搜索mojave,会看到打开应用市场的按钮,然后从应用市场下载更新即可。2. 在app store中点击get下载3. 开始下载最后等待下载...

2019-03-24 13:50:26 7217 1

原创 观察者模式Java内存管理进阶篇——如何避免内存泄漏

一、什么叫观察者模式 观察者模式是常用的设计模式之一;例如在下载文件时,我们可能会更新图标动画,另外在别的控件显示当前下载进度,下载完成后要对文件进行处理,可能这些处理过程都是不同的业务模块,这些模块的生命周期不一样。简单来说观察者模式可以理解为对多个回调实体对象的管理;二、简单案例下面我们通过一个简单的例子来讲解如何设计观察者模式:本案例是新建一个线程可...

2019-03-16 16:27:13 896

原创 C#实现Windows开机自启动

Windows开机自启动的API原理是向注册表Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run对应应用程序的运行路径,或者说启动命令,允许带参数。HKEY_CURRENT_USER与HKEY_LOCAL_MACHINE注册表HKEY_CURRENT_USER节点下的内容仅...

2019-02-24 18:04:04 3063

原创 C#如何控制Windows关机

去年做了一个小工具,其中有一个功能是定时关机,当时小工具使用C#编写。关机代码如下public static void ShutdownComputer(){ System.Diagnostics.Process.Start("shutdown.exe", "-s");//关机}之所以选择使用命令行,主要考虑到实现简单,兼容性好,比起纯代码调用win API方便多。附带用...

2019-02-24 11:23:41 1727

原创 namecheap域名如何绑定IP

近来需要申请域名,国内域名普遍比国外贵,所以就用namecheap,主要还是——穷。 namecheap的界面变化很大导致2018年初之前的博客介绍都和现在的完全不同,本文就介绍如何域名如何绑定IP。1. 登录namecheap,点击要绑定的域名“manage”2. 配置对应的域名3. 最后等五分钟就可以ping通了。...

2019-02-24 10:22:24 12467 7

原创 InputMethodManager内存泄漏的原因及解决方案

       今年开发的一个项目发生了内存泄漏,在六七月份时就观察到即使退出了所有的activity,但是app在后台占用的内存还是没有降下来,保持到75M左右。一直以为是项目使用的代码出现问题,然后继续优化,可是无论怎么优化都达不到合理的内存占用值,最后挤挤牙膏也是降到了60M那样。当时优化了一周效果并不明显。好在60M对于我们应用来说还能够接受,就继续开发迭代功能。最近其他项目迭代开发完成比较...

2018-11-27 20:34:06 1763

原创 java非静态内部类如何创建对象实例

java非静态内部类如何创建对象实例:public class A { public class NestA { }}在A的外部创建NestA的方法如下A a = new A();A.NestA nestA = a.new NestA(); 接下来我们通过实际的项目经历给大家讲解一下在外部创建内部非静态类实例的应用场景——单元测试。刚刚结束一个新...

2018-11-13 22:37:03 4575

原创 如何解决NDK toolchains出现ABI mips64el-linux-android无法编译问题

Android studio更新gradle wrapper到gradle 4.6以后出现了NDK无法编译错误No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android经过查询,这是因为NDK18放弃了mips架构支持的关系,所以不能够编译。解决方案: 升级an...

2018-11-13 01:50:28 1898

原创 android studio和IDE如何自定义module路径

在android或者java项目开发中,有时候需要直接引用其他公共module的代码。这是由有两种解决方案:一、将公共module打包成jar或者aar包然后提供给目标项目使用;二、直接应用该module。解决方案一的优势比较明显,可以创建本地的maven仓库,然后通过dependency进行引用,既解决了库的版本更新问题,也解决了使用公共代码的繁琐问题。缺点:每次修改代码都必须重新打包上传,...

2018-11-12 23:49:19 2239

SmartRetrace-all-1.0-SNAPSHOT.jar

android混淆还原工具Retrace的UI版本---SmartRetrace,retrace的UI版本,不用命令行,方便快捷。 非常奇怪,我每次修改为0C币总是会被系统自动改为要很多C币,现在修改为1C币试一下。估计是CSDN系统运营高策略 使用说明 https://blog.csdn.net/SweetTool/article/details/108191832

2020-08-24

服装仓库管理系统(VB)

这是本人做课程设计的,属于《服装仓库管理系统》的SQL部分,这个题目每年都会是我们学院数据库课程老师作为课程设计内容,如果感觉本设计特别符合的自己的数据库课程设计的话要记得修改,不然中枪了就麻烦。 数据库SQL脚本下载链接:http://download.csdn.net/detail/sweettool/5409683 课程设计报告: http://download.csdn.net/detail/sweettool/5409701

2013-05-19

服装仓库管理系统课程设计报告

这是本人做课程设计的,属于《服装仓库管理系统》的课程设计报告部分,这个题目每年都会是我们学院数据库课程老师作为课程设计内容,如果感觉本设计特别符合的自己的数据库课程设计题目的话要记得修改,不然中枪了就麻烦,这些属于原创作品。

2013-05-19

服装仓库管理系统SQL脚本部分

这是本人做课程设计的,属于《服装仓库管理系统》的SQL部分,这个题目每年都会是我们学院数据库课程老师作为课程设计内容,如果感觉本设计特别符合的自己的数据库课程设计的话要记得修改,不然中枪了就麻烦。

2013-05-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除