【原创】基于主题规范写法修改actionBar高度写法和标题字体大小
简书链接:【原创】基于主题规范写法修改actionBar高度写法和标题字体大小文章字数:350,阅读全文大约需要1分钟首先看图 可以看出来就是 当前主题 选择的手机是56dpactionBarSize,规范是啥,规范就是使用appcompat主题 material design咯 我的各种颜色主题都继承于我的根主题 12<style name="Theme.MyApplication" parent="Theme.MyApplication.RootTheme"> 所以只需要修改根主题属性即可实现 1234<style name="Theme.MyApplication.RootTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> <item name="actionBarStyle" >@style/MyActionBarStyle</item> ...
摩比信通Mobydata开发者模式密码
简书链接:摩比信通Mobydata开发者模式密码文章字数:5,阅读全文大约需要1分钟0016149
模块化项目架构笔记高级技巧拦截所有模块实现字符串加密编译
简书链接:模块化项目架构笔记高级技巧拦截所有模块实现字符串加密编译文章字数:3787,阅读全文大约需要15分钟 说明非模块划分有一种方法,模块划分则2种方法 ,非模块划分是指一个项目,编译时条件删除对应的代码,资源, 在前期需要快速交付时可以使用,即不同模块先划分包名文件夹,然后拦截编译过程删除指定代码从而实现不打包具体代码 ,但是后期优化则应该转换 抽取为具体模块。 具体描述a b c 公司都有 登录 ,首页 ,应用模块,其区别在于首页的tab不一样,功能展示不一样,但是a公司 首页tab没有消息,推送, b公司则有推送,但是没有对应的业务模块如 分箱之类的 但是 c公司 要推送,要 分箱,都要 tab中的应用tab,对应了所有的模块,这些模块的读取 图标,文字都是本地的,而不是通过接口获取的,假设 tab中的应用中包含了 a公司需要考勤模块 b公司需要打卡模块 ,d公司 分别都需要,这tab中的ApplistFragment应该放哪里呢? 是各自实现还是根据channel判断?如果 是a...
关于c主线程子线程用法规范,以及子线程更新ui那些事和安卓对比是怎么样的呢
简书链接:关于c主线程子线程用法规范,以及子线程更新ui那些事和安卓对比是怎么样的呢文章字数:768,阅读全文大约需要3分钟最近同事的一系列操作,惊掉了我的下巴,和那时候的我很像,我那时候玩易语言也不知道耗时操作应该怎么优化体验,应该怎么写,什么才是规范,直到遇到安卓,安卓强制不让在主线程写耗时代码,我才慢慢的进入了规范。安卓要想在子线程更新ui,就需要对Looper进行操作,但是这都是强制写法,实际上肯定不是这么用的,子线程就不应该这么用。。 安卓比较偷懒的写法: 任意ui控件.post();传递函数进去就实现函数体主线程执行 实际上c#也是类似 任意ui控件.Invoke(代理方法,参数) ,在安卓可以通过Thread.currentThread.Name()打印线程名, 在c#一样可以,但是默认为空,需要进行修改赋值才行。。 判断是否当前函数体代码在子线程运行的2种方法: 1234if (this.textBox_log.InvokeRequired)//若是调用控件的线程和建立建立控件的线程不是同一个则为True{ //if...
ASPNETCORE快捷修改dll运行载入的端口
简书链接:ASPNETCORE快捷修改dll运行载入的端口文章字数:50,阅读全文大约需要1分钟默认是5000,运行总是冲突,不得已修改 123SET ASPNETCORE_URLS=http://*:5123dotnet webapi_test.dll --urls=http://*:5124 第一句话设置环境变量可以修改,第二句话的--urls也可以修改。
ckotlinswift扩展方法比较
简书链接:ckotlinswift扩展方法比较文章字数:102,阅读全文大约需要1分钟c# kotlin swift这么玩的
aspnetcoreapi基于token的JWTbearer的鉴权验证实现探索
简书链接:aspnetcoreapi基于token的JWTbearer的鉴权验证实现探索文章字数:2375,阅读全文大约需要9分钟.net的各种框架啥的都不是很熟悉,当时只是想怎么实现快速校验授权确保api是通过验证之后才能打开。我说的快速就是不需要写重复的样板代码,通过总体控制,最后发现,似乎也只能通过注解实现,不过也算是比较合理的,不然无法区分哪些需要哪些不需要了,另外注解应该是可以添加到整个控制器,也就是class上的,使其所有方法生效。 那么实现原理就设计到cookie,session, token,前面的session是需要服务器存档用户信息的,服务器压力比较大,token的实现原理,在登录之后返回 一个token, 之后再每一个接口提交都传递token, 都传递token可以通过请求头提交也可以通过get,post这些提交,我这里探索两者均实现。 问了一些网友,说要实现便捷授权可以实现拦截器,拦截器类似注解,那么只是单纯的拦截器还不是根本,而且我还是没看懂所以然咋自己通过写拦截器代码实现,最后不得不直接用框架jwt bearer实现 jwt bearer...
aspnetcore读取配置不同文件的两种方法
简书链接:aspnetcore读取配置不同文件的两种方法文章字数:279,阅读全文大约需要1分钟第一种是读取appsettings.json新建的项目它默认是和源代码根目录在一起的,内容如下 1234567891011{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*"} 在程序启动的Program.cs时就有如下代码 1234567using coreapiauth;using coreapiauth.TestWebApi.AuthCenter.Utility;using...
原创window端口转发的用处以及适用场景
简书链接:原创window端口转发的用处以及适用场景文章字数:1020,阅读全文大约需要4分钟假设 局域网另外一台电脑(A)是192.168.1.55,直接在这台电脑上访问127.0.0.1:4040能打开, 另外一台电脑打不开,,假设能ping通,能打开此ip其它端口地址,这个时候就需要解决它,当然还有其它解决方法,比如网站绑定这个ip,很简单的事情,但是这里有一种特殊的场景,所以只能这么实现。 实际上还有一种方法实现,这种方法可以解决某种特殊场景。在这台电脑(A)执行命令 netsh interface portproxy add v4tov4 listenport=9999 connect address=127.0.0.1 connectport=4040这句话的意思是吧我的任何地址的:9999都给转发到127.0.0.1:4040去处理, 这时候再另外一台电脑 访问192.168.1.55:9999,发现可以打开了,如果不可以打开,确定是否端口开启。添加 9999 入站规则...