Android学习路线_工具篇(五)自己造轮子

article/2025/9/30 18:31:05

工欲善其事,必先利其器。工具,是人类进化的一大助力,善于制造与使用工具,可以加快我们学习的速度。各种类型的工具和使用我们已经了解得差不多了,日常开发过程中也会遇到一些问题没有现成的工具可以解决,那么制造工具就是我们要考虑的事了。

本文已收录至☞Android学习路线_梳理
上一篇☞Android学习路线_工具篇(四)有效的小工具
下一篇☞Android学习路线_入门篇(一)编写简单的APP

本文纯想法分享,工作过程中自己造轮子也是有需要的,造轮子之前我们需要思考三个问题:要造什么样的轮子?用什么工具造轮子?有什么地方可优化?

1. 要造什么样的轮子

1.1 要解决的问题

最重要的当然是解决问题,我们造的轮子必须可以解决遇到的问题,同时也可以考虑一下有没有可能会有其他类似的问题,最终总结出一个类型的问题,设计一个方案造一个针对这个类型问题的轮子。

1.2 巨人的肩膀

逛逛GitHub、Getee、CSDN、博客园、简书、掘金等等,寻找一下有没有类似的轮子,如果可以在巨人的肩膀上更上一层楼是最好的,为别人造的类似轮子增添新的功能,最后就能成就一个你自己的轮子。

虽然别人造的轮子可能会有隐藏的坑,但是一个经受过一定考验的轮子必然已经填补过一些坑,如果完全自己造的话,这些坑可能会给你一些大麻烦。当然,一个完全没有多少人用的轮子,也没有比你自己造的新轮子靠谱多少。

2. 用什么工具造轮子

2.1 轮子的适用方向

通常来说,平时用到的小工具主要是以脚本、PC端、网页端、IDE插件这四种形式为主,较少的工具是纯代码集成、手机端的形式。

脚本主要是执行一些简单命令,将一些手工操作交给计算机完成,比如一些批量文件操作、定时或者按顺序执行程序、快速调用系统功能等等。脚本种类繁多,常见的有:JavaScript、VBScript、Perl、PHP、Python、Ruby等等,脚本语言无需编译可在调用时直接解释运行,方便快捷。

PC端、网页端、IDE插件主要是用于辅助设计、开发、调试工作的。PC端通常用C++、C#、Java进行开发,也有使用Electron+React/Vue开发的,开发工具通常是VS、IDEA。网页端通常用html+css+JavaScript进行开发,目前也有React、Vue这样的优秀框架,开发工具通常是HBuilder、WebStorm。IDE插件根据使用的IDE工具决定开发语言,作为安卓开发者通常使用AndroidStudio,可以用Java/Kotlin开发适用于JetBrains公司的一系列IDE工具的JetBrains插件,开发工具通常是IDEA。如果你还需要一个后台程序,那么Java、Python、PHP都是可以用上的。

纯代码集成、手机端就看适用方向了。纯代码工具主要是用Java、Kotlin开发的小工具,集成进APP中完成一些运行时的辅助功能,比如LeakCanary。手机端也就是看你的想法了,做一个工具类的APP也是很不错的,比如上一篇文章中提到的开发助手,或是一个木函。

2.2 自身能力与学习

作为一个安卓开发者,自身掌握的语言通常都会有Java/Kotlin,所以建议可以用Java/Kotlin开发PC端、IDE插件、纯代码集成、手机端这四种小工具。如果需要后台的话,直接用Java也是可以的,但是Java开发的后台较为庞大臃肿,对性能要求不高的小工具也可以使用PHP、Python完成,未掌握这两者之一的语言的话学习成本也不高,还可以用于脚本工具开发,性价比较高。

3. 有什么地方可优化

3.1 性能优化

性能上的优化必然是需要持续一段时间的,在工具开发完成后,遇到的bug或者是速度慢,都要在一段时间内好好优化一下。如果想要很快的完善你的小工具,可以尝试开源、写博客推广,用户多了自然能暴露更多的问题,也能接收到更多的意见和建议,好好优化可以变得更好,对自己的能力以及工作效率都会有不小的提升。

3.2 用户体验

推广给更多的用户必然是会有用户体验问题的,最初的开发肯定是专注于自身的需求,多用户就有多场景,在开发过程中也可以思考一些常见的情况,同样的UI也是需要简单考虑的问题,毕竟爱美之心人皆有之,用户用得舒服就会有用户留存和用户增长,反过来也就帮助你有更好的优化和更快的进步,良性循环。

完毕

今天的分享就到这里,文章多有不足,各位小伙伴有什么想法可以直接评论或是私信,要是对你有所帮助就给我一个赞吧,喜欢我的小伙伴可以关注我哦~

本文已收录至☞Android学习路线_梳理
上一篇☞Android学习路线_工具篇(四)有效的小工具

支持我的小伙伴们可以微信搜索“Android思维库”,或者微信扫描下方二维码,关注我的公众号,每天都会推送新知识~
在这里插入图片描述


http://chatgpt.dhexx.cn/article/EVCenh37.shtml

相关文章

避免重复造轮子,Java 程序员必备

优秀且经验丰富的 Java 开发人员的特点之一是对 API 的广泛了解,包括 JDK 和第三方库。如何使用现有的 API 进行开发,而不是为常见的东西编写新的代码。是提升开发效率必选之路。 一般来说,我会为日常项目提供有用的库,包括 Log4…

我们为什么要造轮子

程序员都喜欢造轮子,我身边的程序员,无论他们用什么语言,java、android、ios、python、go, 甚至是js,都热衷于造轮子。其实用go程序员造轮子我倒是能理解,毕竟很多java转go的朋友经常 吐槽:怎么这个没有&am…

程序员为什么热衷造轮子

搜索一下“造轮子”或者“程序员为什么喜欢造轮子”,会看到很多相关的讨论,这是个老生常谈的话题,很多人谈过了,谈了很多年。不过还是有再谈的必要。 “造轮子”的含义: 明知道你做的不可能比前辈做得更好&#xff0c…

「轮子」是什么东西?创造它有什么意义?

程序员圈经常流行的一句话:“不要重复造轮子”。在计算机领域,我们将封装好的组件、库,叫做轮子。因为它可以拿来直接用,直接塞进我们的项目中,就能实现对应的功能。 有些同学会问,人家都已经做好了&#x…

Java获取当前日期的前后一天/一周/一月/一年

Date today new Date(); //当前时间 Calendar calendar Calendar.getInstance(); //得到日历 calendar.setTime(today);//把当前时间赋给日历 calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天 Date yesterday calendar.getTime(); //得到前一天的时间 calend…

java获取当前的年月日日期

import java.util.Calendar; import java.util.Date;public class Main {public static void main(String[] args) {Calendar cal Calendar.getInstance();Date datenew Date();//现在的日期cal.setTime(date);Integer yearcal.get(Calendar.YEAR);//获取年Integer month cal…

java获取当前日期(JAVA获取当前日期的前三天工作日)

在java里怎么取离当前日期最近的一个星期天??知道getNow import java。util。Calendar; import java。util。Date; public class Test { public static void main(String args[]){ //获得当前日期 Date date new Date(); Calendar cal tInstance…

Java 获取当前日期并且实现日期的格式化

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 点击跳转浏览。 今天做一个需求是 实现当前事件减去100天并且格式化为下图所示 实现代码如下: String time "";if(S…

Java获取当前日期的前一天

Java获取当前日期的前一天 //获取当前日期Date date new Date();//格式转换SimpleDateFormat f new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar calendar Calendar.getInstance();//设置当前时间calendar.setTime(date);//在当前时间基础上减一年calendar…

Java获取当前时间的方法

1、 System.currentTimeMillis() 获取标准时间可以使用 System.currentTimeMillis() 方法来获取,此方法优势是不受时区的影响,但是得到结果是时间戳的格式,如: 1543105352845 可以通过代码将时间戳转化为我们可以理解的格式&…

Java获取当前日期和时间

文章目录 1、 System.currentTimeMillis()2、 Java.util.Date3、 Calendar API4、 Date/Time API4.1 LocalDate4.2 LocalTime4.3 LocalDateTime4.4 ZonedDateTime 5、 总结 1、 System.currentTimeMillis() 获取标准时间可以使用 System.currentTimeMillis() 方法来获取&#…

Java如何获取当前日期和时间?

本文将为您介绍 Java 中关于日期和时间获取的方法,以及介绍 Java 8 中获取日期和时间的全新API。 1、 System.currentTimeMillis() 获取标准时间可以使用 System.currentTimeMillis() 方法来获取,此方法优势是不受时区的影响,但是得到结果是…

孪生网络 Siamese Network

文章目录 孪生网络的发展孪生网络定义功能与用途损失函数 孪生网络的发展 孪生网络又称为连体网络,网络中的连体是通过共享权值来实现。孪生网络最早是出现在1993年的论文《Signature Verification using a ‘Siamese’ Time Delay Neural Network》用于美国支票上…

论文笔记:孪生神经网络(Siamese Network)

Siamese Network 原文:《Learning a Similarity Metric Discriminatively, with Application to Face Verification》 1、四个问题 要解决什么问题? 用于解决类别很多(或者说不确定),然而训练样本的类别数较少的分类…

SiameseFC超详解

SiameseFC 前言论文来源参考文章 论文原理解读首先要知道什么是SOT?(Siamese要做什么)SiameseFC要解决什么问题?SiameseFC用了什么方法解决?SiameseFC网络效果如何?SiameseFC基本框架结构SiameseFC网络结构…

Siamese网络代码详解 训练自定义数据集 模型推理

开门见山,Siamese网络结构如下所示: 主干网络:VGG16。整个VGG16的网络结构比较简单,如下图所示,主要分为5个部分: stage1为 2次33卷积+1次22最大池化,输出特征为64通道;stage2为 2次33卷积+1次22最大池化,输出特征为128通道;stage1为 3次33卷积+1次22最大池化,输出…

深度学习(自监督:SimSiam)——Exploring Simple Siamese Representation Learning

文章目录 前言SimSiam简述实验 前言 该文章是何凯明组发表于CVPR2021上的文章,目前已获得最佳论文提名,主要解决自监督对比学习中的奔溃解问题。奔溃解即不论什么输入,特征提取器输出的特征向量都相同。 本文将简单介绍SimSiam,…

siamese模型码详解(每一句代码都有解释!!!)

最近在研究Siamese模型来进行文本相似度的计算,今天就做一期代码详解,每一行的代码都会做出相应的解释,对于初学LSTM的人来说读懂代码是非常有必要的,Siamese模型就是将两个句子(训练数据)通过embeding层&a…

孪生神经网络(Siamese Network)详解

1. 要解决什么问题? 主要解决以下两类分类问题: 第一类,分类数量较少,每一类的数据量较多,比如ImageNet、VOC等。这种分类问题可以使用神经网络或者SVM解决,只要事先知道了所有的类。第二类,分…

Siamese Network (原理篇)

1. Siamese Network 用途 Siamese网络是一种相似性度量方法,当类别数多,但每个类别的样本数量少的情况下可用于类别的识别、分类等。传统的用于区分的分类方法是需要确切的知道每个样本属于哪个类,需要针对每个样本有确切的标签。而且相对来说…