Git命令之submodule使用
[TOC]
概述submodule添加添加子模块非常简单,命令如下:
1git submodule add -b <branch_name> <URL_to_Git_repo> <optional_directory_rename>
其中,url为子模块的路径,path为该子模块存储的目录路径。
执行成功后,git status会看到项目中修改了.gitmodules,并增加了一个新文件(为刚刚添加的路径)
git diff –cached查看修改内容可以看到增加了子模块,并且新文件下为子模块的提交hash摘要
git commit提交即完成子模块的添加
实例代码:
123456git submodule add -b dev_2.1.1 ssh://frewen@icode.frewen.com:8235/frewen.demo submodule/perception-vision-abilitygit submodule add -b master ssh://frewen@icode.frewen.com:8235/frewen.demo ...
Git使用常见错误解决
[TOC]
概述错误一:fatal: .git/index: index file smaller than expectedgit的索引文件损坏了,删除对应的索引文件重建即可
12rm -rf .git/indexgit reset HEAD .
错误二:git文件内容没变但status显示不同虽然文件内容并没有改变,但git status显示目录下所有文件都被标识有更改
用git diff filename命令查看不同,结果若下图:
1234(py36) baiduiov@FreweniUbuntuBaidu:/media/baiduiov/FrewenWang/02.ProjectSpace/01WorkSpace/em$ git diff version.jsondiff --git a/version.json b/version.jsonold mode 100644new mode 100755
这里提示的不同,是文件的权限改变了。
SO,解决方案奏是:不让git检测文件权限的区别
1git config core.filemode false
又遇到一个 ...
PyCharm激活信息备份
[TOC]
概述1234-Xmx2048m-Dide.managed.by.toolbox=/Applications/JetBrains Toolbox.app/Contents/MacOS/jetbrains-toolbox-Dtoolbox.notification.token=d8275817-a4c0-4132-87a7-003a2e1e4777-Dtoolbox.notification.portFile=/Users/frewen/Library/Caches/JetBrains/Toolbox/ports/2032832437.port
深入Android学习之应用启动流程
文章参考:https://mp.weixin.qq.com/s/ZT4E_ZoDj9GbeBhUXPjERA
文章参考:https://blog.csdn.net/u010206565/article/details/121743253
概述先回顾一下Android系统的启动过程:
init进程fork出Zygote进程后,Zygote进程会创建一个服务端socket,等待AMS发起socket请求。
同时,由Zygote进程fork出的SystemServer进程会启动各项系统服务,其中就包含了AMS,AMS会启动Launcher桌面,此时就可以等待用户点击App图标来启动应用进程了。
然后看下系统服务的启动,不管是由init进程启动的独立进程的系统服务如SurfaceFlinger,还是由SystemServer进程启动的非独立进程的系统服务如AMS,都是在ServiceManager进程中完成注册和获取的,在跨进程通信上使用了Android的binder机制。
ServiceManager进程本身也是一个系统服务,经过启动进程、启动binder机制、发布自己和等待请求4个步骤 ...
Android自定义View之BannerView实现
[TOC]
文章参考:https://juejin.cn/post/6927107417482215437
文章参考:https://github.com/mminng/BannerView
概述
面试题-Binder通信传递的最大数据
[TOC]
文章参考:https://blog.csdn.net/u011387817/article/details/89142467
文章参考:https://github.com/wuyr/LitePager
文章参考:https://github.com/Ifxcyr/LitePager
概述
Android自定义View之抖音潜艇大挑战
[TOC]
文章参考:https://github.com/vitaviva/ugame
文章参考:https://mp.weixin.qq.com/s/vwxb2KnGRjYa9aHE0N1XDg
概述
Android自定义View之阴影控件
[TOC]
文章参考:https://www.jianshu.com/p/259abc441af5
文章参考:https://github.com/yangchong211/YCCardView
文章参考:https://mp.weixin.qq.com/s/m8K-9a5yaAgXaipaxofDoQ
概述
Android之Binder机制基础学习
[TOC]
概述Binder是Android特有的一种进程间通信(IPC)方式。Android Binder的前身是OpenBinder,最早由Dianne Hackborn开发并用于PalmOS上,后来Dianne Hackborn加入Google,在OpenBinder的基础上开发了Android Binder。
Binder和传统的IPC机制相比,融合了远程过程调用(RPC)的概念,而且这种远程调用不是传统的面向过程的远程调用,而是一种面向对象的远程调用。
从Unix发展而来的IPC机制,只能提供比较原始的进程间通信手段,通信的双方必须处理线程同步、内存管理等复杂问题,不但工作量大,而且很容易出错。除了Socket、匿名管道(Pipe)以外,传统的IPC,如命名管道(FIFO)、信号量(Semaphore)、消息队列等已经从Android中去掉了。和其他IPC相比较,Socket是一种比较成熟的通信手段,同步控制也很容易实现。Socket用于网络通信非常合适,但是用于进程间通信,效率就不太高了。
Andoid在架构上一直希望模糊进程的概念,取而代之以组件的概念。应用不需要关心组件 ...
Binder学习之ServiceManager
[TOC]
概述文章参考:https://blog.csdn.net/itachi85/article/details/104205274
上一篇文章Android进程间通信(IPC)机制Binder简要介绍和学习计划简要介绍了Android系统进程间通信机制Binder的总体架构,它由Client、Server、Service Manager和驱动程序Binder四个组件构成。
本文着重介绍组件Service Manager,它是整个Binder机制的守护进程,用来管理开发者创建的各种Server,并且向Client提供查询Server远程接口的功能。ServiceManager本身也是一个Binder服务,但并没有采用libbinder中的多线程模型来与Binder驱动通信,而是自行编写了binder.c直接和Binder驱动来通信,并且只有一个循环binder_loop来进行读取和处理事务,这样的好处是简单而高效。
既然Service Manager组件是用来管理Server并且向Client提供查询Server远程接口的功能,那么,Service Manager就必然要和Ser ...