最近刷抖音,发现刷的时间久一点就能感觉到明显卡顿,严重影响使用,需要强杀APP才行。偶尔一次还好,次数多了,一方面影响了使用体验,一方面出于安卓开发的职业,手机性能也不低,跑的也是大厂APP,为什么会有这么明显的卡顿呢。比较好奇到底是什么原因导致的,本文就来分析一下,当做性能优化的练习题。
因为我用的是小米手机,使用的澎湃系统。 因为是新系统,一开始怀疑是系统方面有BUG。首先手机配置不算低,料想CPU没问题,看了下16内存还有7G剩余也是足够,1T空间还有一半没用,也不会是IO瓶颈。那只能是CPU调度上有问题,之前也看过一个关于小米手机的性能优化案例,因为CPU对进程调度以及系统刷新优化方面缺陷,会导致APP卡顿。具体来说就是将应用主线程调度到小核上了,小核的频率也没有以最高频率问题,也就是摆核问题。然后就想开启小米手机的性能模式,这...
docker镜像源可用性在线检测
介绍
docker镜像源国内目前很多都失效了。网上也有各种替代方法,有的比较麻烦,最方便的还是替换可用的镜像源。
但是网上找的镜像源不知道什么时候就失效了,需要反复尝试。
针对上面问题,开发了一个网站,用来在线检测docker镜像源的可用性。
测试可用再配置,这样就不怕了,可以说是目前最方便的解决docker镜像下载问题的方法。
具体使用
https://docker.jhjy.pw/
访问检测网站
将镜像源url每行一个填入下面,点击检查
就会将可用的镜像源显示出来了
有可用的镜像源可以在公众号留言
docker镜像源可用性在线监测
结语
另外我建了一些程序员交流群,感兴趣可以加我微信好友:
weichenAndroid
给我留言进入相应的交流群...
窗口拆分可拖动布局组件splitpanes
介绍
官网和文档
https://github.com/antoniandre/splitpanes
https://antoniandre.github.io/splitpanes/
这个组件能实现上面效果,窗口任意拆分,拆分完还可以拖动来改变每个布局的大小。
还是响应式的
类似android中的weight布局方式,甚至更好用一些
安装
npm i splitpanes
import { Splitpanes, Pane } from 'splitpanes'
import 'splitpanes/dist/splitpanes.css'
使用
安装好之后就可以直接import使用了
<template>
<splitpanes class="defaul...
Vue3增删改查demo源码
介绍
一个vue纯前端的增删改查的demo源码
用来学习vue的一些组件和功能非常不错,实现的功能也是很实用的
毕竟UI仔最常见的操作就是增删改查
项目教程来自B站,原本也配套了源码。
https://space.bilibili.com/94560450/channel/collectiondetail?sid=582261&spm_id_from=333.788.0.0
https://github.com/yanmiao99/vue3-go-crud-project
不过源码实际跑的时候发现after源码又增加了后端的go接口的代码不能直接运行了
before的源码没有go接口,但是也有一些bug跑不起来。
我将源码改了改,纯前端,clone之后直接npm install,npm run dev就可以运行了
项目具体介绍
支持增加item,删...
vue3开箱即用的demo源码
介绍
本文分享自用的vue3项目开箱即用的源代码
常用的依赖已经安装好了,
包括element-plus,route,axios的get,post,stream接口
pinia,pinia持久化,tailwindcss
一个左右布局的vue组件
启动以后类似如下
源码地址
https://gitcode.com/atandroid/vue3BaseDemo/overview
git提交记录
...
pinia与cookie的同步工具类
介绍
有时候pinia的store状态需要与cookie同步,比如用户信息
这里提供一个方便的工具类
使用
cookie.js工具类
//设置cookie,增加到vue实例方便全局调用
//vue全局调用的理由是,有些组件所用到的接口可能需要session验证,session从cookie获取
//当然,如果session保存到vuex的话除外
//全局引入vue
var cookie={
setCookie (c_name, value, expiredays){
var exdate = new Date();
exdate.setTime(exdate.getTime()+expiredays);
exdate.setDate(exdate....
Vue的路由组件Router的基本使用
安装和注册
官方文档
https://router.vuejs.org/zh/introduction.html
npm i vue-router
"vue-router": "^4.3.0"
main.js中注册
import router from './router'
定义路由
import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../components/HomeView.vue'
import AboutView from '../components/AboutView.vue'
...
vue接口请求库axios,fetch的使用
介绍
本文介绍一下axios的安装,配置,get,post和stream用法(封装方式),拦截器用法
安装
npm install axios
"axios": "^1.6.8",
request封装
request.js主要是对axios进行基本配置
import axios from 'axios'
export const API_BASE_URL = "http://192.168.68.92:16603";
const service = axios.create({
//url = base url + reqeust url
baseURL : API_BASE_URL,
//配置请求超时时间
...
element-plus的Menu菜单
介绍
Menu菜单用来做标题头还是蛮方便的。
https://element-plus.org/zh-CN/component/menu.html
本文介绍一下基本使用
基本使用
<template>
<el-menu
:default-active="activeIndex"
class="el-menu-demo"
mode="horizontal"
:router="true"
>
<el-menu-item index="/">Home</el-menu-item>
<...
wxPython开发桌面应用简介(源码)
安装
本文简单介绍一下wxpython开发桌面应用
pip install wxPython
pillow==10.3.0
six==1.16.0
wxPython==4.2.1
开发
# 简单的弹窗应用
import wx
class MyFrame(wx.Frame):
def __init__(self):
super().__init__(None, title="Hello wxPython", size=(300, 200))
panel = wx.Panel(self)
btn = wx.Button(panel, label="Click Me!", pos=(100, 50))
btn.Bind(wx....