Git命令及GIt Flow工作流
一.Git简介Git是目前世界上最先进的分布式版本控制系统。它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。完成开发以后再将各自的修改推送给对方,就可以互相看到对方的修改了(为了便于项目中的所有开发者分享代码,我们将代码存放远程 Git 仓库例如github)。与此对应的是SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。而且集中式版本控制系统是必须联网才能工作。 二.Git文件状态 Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件 Modified: 文件已修改,...
Win10及11安装Wsl2
一.安装Wsl2环境要求必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。 WSL2 是 WSL 1 的升级版,带来的主要优势: 提高文件系统性能 支持完全的系统调用兼容性 WSL2 使用了 hyper-v 虚拟化技术,它就是一个你感知不到的虚拟机(VM),比以前的版本性能更高。 安装步骤1.启用虚拟机平台和 Linux 子系统功能方式一:使用控制面板 打开控制面版,再点击程序与功能—>启用或关闭Windows功能: 适用于Linux的Windows子系统 虚拟机平台 hyper-v重启电脑。 方式二:使用命令行工具以管理员权限启动PowerShell或者cmd,然后输入以下命令启用虚拟机平台: 1dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 然后输入以下命令启用 Linux 子系统功能: 1dism.exe /online /enable-feature...
Win11正式版(21H2)安装Android子系统
本教程的背景是Win11正式版本(21H2)暂未全面推送Android子系统的情况的尝鲜教程。 一. Win11dev版本wsa在win11测试版本上面已经可以直接使用了,只设置区域为美国,设置->启动关闭windows功能->开启hyper-v和虚拟机平台,电脑重启后,去商店搜索Window Subsystem for Android即可使用。 二. Win11正式版:1. 修改区域为美国设置->时间和语言->语言&区域->国家和地区->选择美国。 2. 打开虚拟化技术 菜单->启动关闭windows功能->开启hyper-v和虚拟机平台->重启电脑。 重启的时候检查下BIOS的虚拟化是否开启Intel为VT, AMD为SVM 3. 下载Windows Subsystem for...
Android沉浸式状态栏实现总结
Android api 30+ 可用新的api实现沉浸式状态栏等方案状态栏字体颜色修改://状态栏字体改为白色 1WindowCompat.getInsetsController(window,window.decorView).isAppearanceLightStatusBars = false //状态栏字体改为黑色 1WindowCompat.getInsetsController(window,window.decorView).isAppearanceLightStatusBars = true 在API 11及其以上 Window Tranfer flag已经过时了,我们使用如下的方法 12345678910111213window.statusBarColor = Color.TRANSPARENTwindow.navigationBarColor = Color.TRANSPARENT//内容扩展到状态栏WindowCompat.setDecorFitsSystemWindows(window,...
Android项目Gadle统一依赖管理
一.Gradle管理依赖版本在中大型Android项目中,都会有多个Module进行协同配合。这些module中可能会依赖同一个库的不同版本,这将导致一些问题,要么是代码冲突,要么是APK包体积增大,亦或是项目构建的时间变长,拖慢开发效率。 例如:下图就是在不同的module中依赖同一个库的不同版本。要解决这个问题我们首先要了解在Android项目中目前有那些方案来引入第三方依赖: 直接编写(默认方式) 使用ext扩展抽取公共版本 使用buildSrc管理依赖 使用composing builds管理依赖 使用catalog管理依赖(gradle7版本以上才能用,因此暂时忽略) 二.直接编写(默认方式)简介直接编写是Android项目工程自带的默认管理方式,在每一个module中都写死了不同依赖及版本号,因此每次升级依赖库时都需要对每一个module做大量的手动更改。 module_a/build.gradle: 1234567dependencies { implementation...
Android即时通讯Im开发总结
实现即时通讯IM的方式一. 使用第三方IM服务对于短平快的公司,完全可以采用第三方SDK来实现。国内IM的第三方服务商有很多,类似云信、环信、融云、LeanCloud,当然还有其它的很多,这里就不一一举例了,感兴趣的小伙伴可以自行查阅下。第三方服务商IM底层协议基本上都是TCP。他们的IM方案很成熟,有了它们,我们甚至不需要自己去搭建IM后台,什么都不需要去考虑。如果你甚至连UI都不需要自己做,这些第三方有各自一套IM的UI,拿来就可以直接用。但是缺点也很明显,定制化程度不太高,很多东西我们不可控。当然还有一个最最重要的一点,就是太贵了…作为真正社交为主打的APP,仅此一点,就足以让我们望而却步。 当然,如果IM对于APP只是一个辅助功能,那么用第三方服务也无可厚非。主流的第三方IM服务: 环信IM。 融云IM。 野火IM(半开源)。 二. 自己实现自己实现大约有三种方案: 客户端不断通过http轮询服务端获取消息(不建议)。 使用第三方推送服务将消息推送到客户端(不建议)。 自己使用长连接技术保持和服务端的连接获取到消息(建议)。 1....
Android后台任务Services和WorkManager总结
Android后台服务限制Android O对应用在后台运行时可以执行的操作施加了限制,称为后台执行限制(Background Execution Limits),这可以大大减少应用的内存使用和耗电量,提高用户体验。后台执行限制分为两个部分: 后台服务限制(Background Service Limitations)、 广播限制(BroadcastLimitations)。除了下面情况外都是后台应用: 具有可见的Activity 具有前台服务 另一个前台应用已关联到该应用(通过bindService或者使用该应用的ContentProvider)。 应用在后台期间保留其后台服务的能力将受到限制。如果应用处于后台时调用了startService()将会抛出IllegalStateException,除非: 应用已经处于前台,则可以调用 startService(),不会抛出IllegalStateException,但一旦进入后台,后台应用将被置于一个临时白名单中,位于白名单中时,在这段时间内,应用可以无限制地启动服务,其后台服务也可以运行。但这个时间期一过(Nexus...
上传Aar到maven库
方式一:12345678910111213141516171819202122232425262728293031323334353637383940plugins { id 'com.android.library' id 'org.jetbrains.kotlin.android' id 'maven-publish'}task androidSourceJar(type: Jar) { from android.sourceSets.main.java.getSrcDirs()//源码路径 包括Java和Kotlin源码 archiveClassifier.set("sources")}afterEvaluate { publishing { publications { plugin(MavenPublication) { ...
自定义Rss源比较
万物皆可RSS简书荒废有近两年,最近发现一个RSS神器,所以又有了动力写一点东西。前年关于使用RSS订阅微信公众号、知乎、社交网络等,有写几篇文章: 【干货】如何高效地订阅微信公众号 【干货】如何通过 RSS 订阅知乎 【干货】如何通过RSS订阅社交网络 其中,最最主要的方法是使用部署的Huginn去制作相应的RSS,但是,这种方法的学习成本稍高,对不懂编程语言的人不太友好;那么到底有没有更简单的方法呢?果真,Github就出现了这样一个强大的工具——RSSHub。最近花了一点时间研究后发现,这个工具实在是功能强大且使用简单,所以就想一定要推荐给大家。 如果想了解并部署Huginn,可以看我的这篇文章:Huginn 安装教程 — 建立你自己的 IFTTT 1....
使用Huginn打造自动化信息处理中心
一.Huginn简介在北欧神话中,奥丁的肩膀上坐着两只乌鸦,一只名叫 Huginn,一只名叫 Muninn。这两只乌鸦告诉奥丁他们的所见所闻,毫无遗漏。奥丁在黎明时派出它们,它们飞遍全世界然后在晚餐之前回来汇报,因此,奥丁能知晓很多事情。在Huginn的项目主页上,作者对它有详细的介绍。我们同样可以通过Huginn创建不同的代理,通过这些代理发送HTTP请求获得相关数据,然后将获取到的数据进行处理,就可以在互联网上面收集到各类我们需要的信息了。通过Huginn我们可以比较方便的实现如下功能: 监控你关心的事项例如知乎、微博、贴吧等平台指定的信息,一旦监控到信息,邮件通知你。 监控各大购物平台商品信息,一旦发现折扣信息,邮件通知你。 支持各种形式的发送和接收...