欢迎来到我的博客。
阮华锋的个人博客
随缘更新
欢迎来到我的博客。
随缘更新
8,827 个税目 · 97 章全覆盖 · 税率 0% 背景速览 项目 内容 政策名称 中国对非洲国家特别优惠关税待遇 适用年份 2026年 适用国家 20 个非洲国家 总税目数 8,827 项 特惠税率 0%(全部) 适用国别: 北非 西非/中非 东非/南非 阿尔及利亚 喀麦隆 肯尼亚 埃及 刚果(布) 毛里求斯 利比亚 科特迪瓦 纳米比亚 摩洛哥 赤道几内亚 塞舌尔 突尼斯 加蓬 南非 — 加纳 津巴布韦 — 尼日利亚 博茨瓦纳 — 佛得角 — 一、总览:Top 20 章节排行榜 排名 HS章 类别 条目数 占总量 1 第84章 机械设备 1,052 11.9% 2 第29章 有机化学品 598 6.8% 3 第85章 电气设备 590 6.7% 4 第87章 车辆及零件 392 4.4% 5 第28章 无机化学品 324 3.7% 6 第3章 水产品 300 3.4% 7 第90章 精密仪器 263 3.0% 8 第72章 钢铁 227 2.6% 9 第44章 木及木制品 211 2.4% 10 第39章 塑料 170 1.9% 11 第73章 钢铁制品 168 1.9% 12 第62章 梭织服装 155 1.8% 13 第55章 化纤短纤 136 1.5% 14 第61章 针织服装 132 1.5% 15 第38章 杂项化工 131 1.5% 16 第12章 油籽/药用植物 130 1.5% 17 第52章 棉花 127 1.4% 18 第7章 食用蔬菜 124 1.4% 19 第54章 化纤长丝 112 1.3% 20 第70章 玻璃 107 1.2% 二、农产品与食品(第 1-24 章 · 约 1,570 项) 2.1 活动物(70项) 税目范围 内容 项数 0101-0105 马、驴、骡、牛、水牛、猪、绵羊、山羊、鸡、火鸡、鸭、鹅、珍珠鸡 41 0106 灵长目、鲸/海豚/海牛、海豹/海狮/海象、骆驼、家兔/野兔、鳄鱼苗、爬行动物、猛禽、鹦形目鸟、鸵鸟/鸸鹋、蜂、蛙苗等 29 2.2 肉类及杂碎(79项) 品类 商品形态 牛肉 鲜/冷整头及半头 · 带骨 · 去骨 · 冻整头及半头 · 冻带骨 · 冻去骨 猪肉 鲜/冷整头 · 带骨腿及肉块 · 冻整头 · 冻带骨 · 冻其他 羊肉 鲜/冷羔羊 · 鲜/冷绵羊 · 带骨/去骨 · 冻绵羊 · 山羊肉 马驴骡肉 鲜/冷/冻 杂碎 牛杂碎(鲜冷/冻舌/冻肝/其他) · 猪杂碎(鲜冷/冻肝/其他) · 羊马驴骡杂碎 禽肉 整只鸡(鲜冷/冻) · 鸡块(带骨/其他) · 鸡翼 · 鸡爪 · 火鸡 · 鸭 · 鹅 · 珍珠鸡 加工肉 干/熏/盐制猪肉 · 牛肉 · 灵长目/鲸/爬行动物肉 2.3 水产品(300项) 税目 内容 项数 0301 活鱼(观赏 · 鳟鱼 · 鳗鱼 · 鲤科鱼 · 金枪鱼 · 罗非鱼 · 鲀等) 20 0302 鲜/冷鱼(鳟鱼 · 大麻哈鱼 · 鲑鱼 · 比目鱼 · 金枪鱼 · 沙丁鱼 · 鳕鱼等) 52 0303 冻鱼(按品种分列) 51 0304 鱼片(鲜/冷/冻,罗非鱼 · 鲶鱼 · 尼罗河鲈鱼等) 50 0305 干/熏/盐制鱼(鱼肝 · 鱼卵 · 鱼片 · 鱼头/尾/胃等) 28 0306 甲壳动物(龙虾 · 螯龙虾 · 梭子蟹 · 虾 · 对虾等,活/鲜/冷/冻) 38 0307 软体动物(牡蛎 · 扇贝 · 贻贝 · 鱿鱼 · 章鱼 · 鲍鱼等) 44 0308 海参(种苗 · 活/鲜/冷 · 冻)等 15 0309 食用鱼粉及团粒 2 2.4 乳品、蛋品、蜂蜜(41项) 税目 内容 项数 0401-0406 乳及稀奶油 · 固状乳 · 酸乳 · 乳清 · 黄油 · 乳酪 22 0407-0408 种用禽蛋 · 鲜蛋 · 蛋黄(干/其他) · 去壳禽蛋 11 0409-0410 天然蜂蜜 · 燕窝 · 蜂王浆 · 昆虫 8 2.5 蔬菜水果(218项) 类别 典型商品 鲜/冷藏蔬菜(第7章 · 124项) 马铃薯 · 番茄 · 洋葱/大蒜 · 花菜/西蓝花 · 莴苣 · 胡萝卜 · 黄瓜 · 豌豆 · 芦笋 · 茄子 · 芹菜 · 辣椒 冷冻蔬菜 冷冻马铃薯 · 冷冻豌豆 · 冷冻红小豆 暂时保藏蔬菜 盐水蘑菇 · 保藏油橄榄 · 保藏黄瓜 干制蔬菜 干洋葱 · 干木耳 · 干蘑菇 豆类 干豌豆 · 鹰嘴豆 · 小扁豆 · 蚕豆 · 红豆 · 绿豆 · 木薯 水果(第8章 · 94项) 椰子 · 榛子 · 香蕉 · 菠萝 · 橙/柑桔 · 葡萄 · 西瓜/哈密瓜 · 苹果/梨 · 杏/樱桃 · 草莓/蓝莓 · 椰枣/无花果 2.6 咖啡、茶与香料(55项) 类别 项数 细分方式 咖啡 6 未焙炒/已焙炒 × 咖啡碱浸除/未浸除 茶 16 花茶 · 绿茶 · 白茶 · 黄茶 · 乌龙茶 · 普洱茶(熟/生) · 红茶 · 黑茶 — 全部按 ≤3kg / >3kg 分别列目 马黛茶 1 — 胡椒 4 未磨/已磨 · 干辣椒 肉桂 3 锡兰肉桂/其他 · 未磨/已磨 姜 2 未磨/已磨 丁香/肉豆蔻/芫荽子/枯茗子 各2-8 未磨/已磨分类 番红花 1 — 2.7 加工食品与饮料(363项) 类别 项数 典型商品 糖及糖食 7 甘蔗糖水溶液 · 固体糖 · 糖蜜 · 口香糖 · 其他糖食 可可制品 11 可可豆 · 可可膏 · 可可脂 · 可可粉 · 巧克力 谷物/面食/糕点 23 婴幼儿配方奶粉 · 生面食 · 包馅面食 · 面包 · 饼干 果蔬制品 105 番茄酱罐头 · 蘑菇罐头 · 冷冻马铃薯 · 花生米罐头 · 烘焙花生 · 果汁(橙汁/苹果汁/葡萄汁等26项) 调味品 6 酱油 · 番茄沙司 · 芥末 饮料 25 矿泉水 · 汽水 · 无醇啤酒 · 啤酒 · 葡萄酒(5项) · 味美思 · 黄酒 · 威士忌 · 朗姆酒 · 杜松子酒 · 伏特加 · 白酒 · 醋 饲料 30 肉骨粉 · 豆粕 · 花生粕 · 棉子粕 · 狗食/猫食 · 添加剂预混合饲料 烟草 14 烤烟 · 雪茄烟 · 卷烟 · 水烟料 · 非燃烧吸入品 三、矿产品(第 25-27 章 · 202 项) 3.1 非金属矿产(90项) 品名 项数 品名 项数 盐 4 磷灰石 4 石墨 4 重晶石/毒重石 2 硅砂/石英砂 2 浮石/刚玉岩 2 石英/石英岩 2 大理石/石灰华 3 高岭土 2 花岗岩 4 膨润土/耐火粘土 6 卵石/碎石 5 白云石 2 菱镁矿 6 石膏 3 石灰石/石灰 4 水泥 5 石棉 3 云母 3 滑石 4 硼砂/硼酸盐 2 长石/萤石 6 3.2 金属矿砂(44项) 矿种 矿种 矿种 矿种 铁矿(5项) 锰矿 铜矿 镍矿 钴矿 铝土矿 铅矿 锌矿 锡矿 铬矿 钨矿 铀矿/钍矿 钼矿(2项) 钛矿 锆矿/钽铌矿(3项) 银矿/其他贵金属 锑矿(2项) 朱砂 冶炼渣(10项) 矿灰/城市垃圾灰 3.3 能源矿产(68项) 类别 项数 典型商品 煤炭 8 无烟煤 · 炼焦煤 · 其他烟煤 · 褐煤 · 泥煤 · 焦炭 · 甑炭 原油 1 石油原油 成品油 20 车用汽油 · 航空汽油 · 石脑油 · 溶剂油 · 煤油 · 柴油 · 燃料油 · 润滑油 天然气 9 液化天然气 · 液化丙烷/丁烷 石蜡/沥青 10 凡士林 · 石蜡 · 石油焦 · 天然沥青 · 乳化沥青 电力 1 电力 四、化工产品(第 28-38 章 · 1,459 项) 4.1 章节明细 HS章 类别 项数 第28章 无机化学品(元素/酸碱盐/氧化物/稀土等) 324 第29章 有机化学品(烃/醇/酚/醛/酮/酸/胺/杂环/维生素/抗生素/激素) 598 第30章 药品(免疫制品/抗生素制剂/敷料/造影剂) 88 第31章 肥料(氮肥/磷肥/钾肥/复合肥) 28 第32章 染料/涂料/油墨 63 第33章 精油/化妆品(香水/口红/牙膏/洗发水) 43 第34章 肥皂/表面活性剂/润滑剂 28 第35章 蛋白/改性淀粉/胶/酶 22 第36章 炸药/烟花/火柴 16 第37章 照相/电影用品(感光胶片/相纸) 62 第38章 杂项化工(活性炭/催化剂/杀虫剂/单晶硅片/诊断试剂/生物柴油) 131 4.2 有机化学重点品类(第29章) 品类 项数 代表商品 烃类 31 乙烯、丙烯、丁二烯、苯、甲苯、二甲苯、苯乙烯 卤代烃 50 氯甲烷、二氯甲烷、氯仿、四氯化碳、氟利昂替代品 醇/酚/醚 57 甲醇、乙醇、丙醇、乙二醇、甘油、薄荷醇、苯酚 醛/酮/醌 34 甲醛、乙醛、丙酮、丁酮、苯醌 羧酸及其衍生物 83 甲酸、乙酸、丙烯酸、草酸、乳酸、酒石酸、柠檬酸 胺类/氨基酸 74 甲胺、乙胺、乙醇胺、甘氨酸、赖氨酸、牛磺酸 杂环化合物 78 呋喃、吡啶、三聚氰胺、蜜胺 维生素 11 A · B1 · B2 · B3 · B5 · B6 · B12 · C · E 抗生素 30 氨苄青霉素 · 青霉素 · 链霉素 · 四环素 · 红霉素 · 庆大霉素 激素 13 胰岛素 · 生长激素 · 可的松 · 肾上腺素 生物碱 22 可待因 · 吗啡 · 奎宁 · 咖啡因 · 茶碱 4.3 药品(88项) 类别 项数 典型商品 免疫制品 13 抗血清、非混合/混合免疫制品(疫苗) 未配定剂量混合药 24 含氨苄青霉素 · 含羟氨苄青霉素 · 含青霉素V · 含链霉素等 已配定剂量药品 35 氨苄青霉素药品 · 羟氨苄青霉素药品 · 青霉素V药品 · 胰岛素注射剂等 敷料 4 橡皮膏 · 胶粘敷料 · 药棉/纱布/绷带 其他 12 X光造影剂 · 牙科填充料 · 骨骼粘固剂 · 急救药箱 · 避孕药具 五、塑料与橡胶(第 39-40 章 · 272 项) 层级 塑料(170项) 橡胶(102项) 原料 PE(8项) · PP(5项) · PS(7项) · PVC(10项) · PMMA · PC · PA(7项) · PU · POM(17项) · 环氧 · 硅氧烷 丁苯(30项) · 顺丁 · 丁腈 · 氯丁 · 乙丙 · 再生橡胶 中间品 废碎料(5项) · 单丝/型材(5项) · 硬管(10项) · 板/片/膜(22项) · 胶粘带(5项) 未硫化橡胶(3项) · 硫化板/片/带(4项) · 橡胶管(8项) 制品 地板(2项) · 浴缸/马桶座(3项) · 餐具/厨具(2项) · 包装容器(7项) · 手套(2项) · 人造肠衣 轮胎(13项轿车/客货/航空/自行车/摩托) · 翻新胎(9项) · 内胎(4项) · 传动带(10项) · 避孕套 · 医疗手套(4项) 六、纺织与服装(第 50-63 章 · 约 1,128 项) 6.1 纤维与纱线 材料 章 项数 覆盖范围 蚕丝 50 28 蚕茧(2) → 生丝(6) → 废丝(5) → 纱线(3) → 机织物(11) 羊毛/动物细毛 51 49 未梳/已梳山羊毛 · 兔毛 · 纱线(16) · 机织物(14) 棉花 52 127 废棉(3) → 缝纫线(3) → 纯棉精梳/粗梳纱(24) → 混纺纱(20) → 机织物(80+) 其他植物纤维 53 43 亚麻 · 大麻 · 黄麻 · 苎麻 · 纱线(12) · 织物(15) 化纤长丝 54 112 高强力纱(47,含芳纶) · 弹力丝 · 单丝 · 机织物(43) 化纤短纤 55 136 丝束(9) → 短纤(14) → 纱线(24) → 机织物(80+) 6.2 织物类型 章 类别 项数 典型商品 56 絮胎/毡呢/无纺织物 39 卷烟滤嘴 · 化纤无纺织物(16项) · 渔网(3项) 57 地毯及铺地制品 30 结织栽绒地毯 · 簇绒地毯(6项) · 毡呢地毯(3项) 58 特种机织物/花边/刺绣 67 起绒织物(15) · 毛巾布(11) · 纱罗 · 网眼薄纱 · 刺绣品(4) 59 浸渍涂布织物 42 帘子布(5) · 人造革(9) · 绝缘胶带(5) · 水龙软管 · 传动带 60 针织物/钩编织物 61 长毛绒(7) · 经编织物(15) · 纬编织物(14) 6.3 服装 品类 针织/钩编(第61章 · 132项) 梭织(第62章 · 155项) 大衣/防风衣 男式(4) · 女式(4) 男式(6) · 女式(6) 西服套装 男式(15) · 女式(25) 男式(21) · 女式(30) 衬衫 男式(3) · 女式(3) 男式(5) · 女式(5) 内裤/内衣 男式(11) · 女式(15) 男式(12) · 女式(12) T恤/汗衫 3 — 婴儿服装 4 4 运动服/泳装 9 19 袜子/手套/围巾 22 19 6.4 家纺与杂项(第63章 · 104项) 床上用品(35项):针织/梭织床单 · 被套 · 枕套 · 毯子 窗帘(9项):针织/钩编/梭织窗帘 床罩/桌布(25项):手工/非手工 · 针织/钩编 其他:货物包装袋(6) · 帐篷/遮阳篷(16) · 擦布 · 救生衣 · 口罩 七、鞋帽伞杖(第 64-67 章 · 73 项) 类别 项数 分类方式 防水鞋靴 5 鞋面(橡胶/塑料) × 高度(过踝/过膝) 运动鞋 7 滑雪靴 · 网球鞋 · 篮球鞋等 皮鞋 14 滑雪/运动/其他 × 鞋底材料 纺织面鞋 5 运动/拖鞋/其他 鞋零件 7 鞋面 · 外底(橡胶/塑料) · 鞋跟 帽类 13 毡呢帽 · 编结帽 · 安全帽 · 发网 · 帽附件 伞/手杖 6 庭园伞 · 折叠伞 · 手杖 · 伞骨 羽毛/假发 11 已加工羽毛 · 人造花 · 假发(合成/人发) 八、石材 · 陶瓷 · 玻璃(第 68-70 章 · 219 项) 8.1 按章分布 HS章 类别 项数 重点商品 68 石材/水泥/石膏制品 77 大理石砖瓦(17) · 砂轮(9) · 石膏板(3) · 碳纤维/碳布/预浸料(9) · 石棉制品(20) 69 陶瓷 35 耐火砖(4) · 瓷砖(9,按吸水率/表面积分) · 卫浴设备(2) · 餐具(5瓷+2陶) · 塑像(2) 70 玻璃 107 浮法玻璃(5) · 钢化安全玻璃(6) · 中空玻璃(2) · 后视镜(3) · 安瓿(6) · 玻璃器皿(10) · 玻璃纤维(34,短切纱/无捻粗纱/织物) 8.2 玻璃纤维(税目 7019 · 34项) 形态 典型商品 短切原丝 长度 ≤50mm / >50mm 无捻粗纱 按纤维直径和线密度 纱线/定长纤维 各种规格 织物 无捻粗纱织物 · 化学粘合毡 · 机械结合毡 · 薄片(巴厘纱) · 其他机织物 · 其他玻璃纤维制品 九、珠宝与贵金属(第 71 章 · 88 项) 类别 项数 典型商品 珍珠 8 天然珍珠(黑珍珠/其他) · 养殖珍珠 钻石 5 未分级钻石 · 工业用钻石 · 非工业用钻石 宝石/半宝石 7 红宝石 · 蓝宝石 · 祖母绿 · 翡翠 · 水晶 · 碧玺 合成宝石 8 压电石英 · 合成钻石 · 其他合成/再造宝石 宝石粉末 3 天然钻石粉末 · 合成钻石粉末 · 宝石粉末 银 8+1 银粉(3) · 未锻造银 · 半制成银 · 包银材料 金 4+1 金粉 · 未锻造金 · 半制成金 · 包金材料 铂 12+1 铂粉 · 铂锭 · 铂板/片 · 包铂材料 贵金属废碎料 9 含银/金/铂的灰/废碎料 首饰 8 银首饰(镶嵌钻石/其他) · 金首饰(镶嵌钻石/其他) · 铂首饰 金银器 3 银器 · 其他贵金属器 · 包贵金属器 仿首饰 3 贱金属袖扣 · 贱金属仿首饰 · 其他材料仿首饰 其他 5 铂催化剂 · 贵金属实验室器具 · 珍珠/宝石制品 · 硬币 十、贱金属与制品(第 72-83 章 · 869 项) 10.1 钢铁产业链 环节 HS范围 项数 典型商品 初级产品 7201-7207 42 生铁(3) · 铁合金(21) · 废钢(7) · 铁粉(4) · 钢坯(4) 平板轧材 7208-7212 63 热轧卷板(24) · 冷轧卷板(15) · 镀涂板(12) · 窄带材(12) 条杆 7213-7216 32 盘条(4) · 条杆(8) · 型钢(H型/工字/U型/角钢 · 20) 钢丝 7217 5 未镀 · 镀锌 · 镀铜 · 镀其他 不锈钢 7218-7223 41 坯料(3) · 宽板/窄带(31) · 条杆(6) · 钢丝(1) 合金钢 7224-7229 44 坯料(3) · 硅电钢/高速钢(22) · 条杆(16) · 钢丝(3) 10.2 钢铁制品(168项) 类别 项数 典型商品 管材 52 无缝管(33,含石油天然气套管) · 焊管(7) · 粗钢管(7) · 石油管(5) 连接件/结构 15 法兰(10) · 桥梁(5) · 门窗框架 容器 8 容积>300L容器(1) · 50-300L(5) · 压缩气瓶(2) 紧固件/弹簧 23 螺钉螺母(13) · 弹簧(7) · 铆钉/垫圈 其他 70 钢索 · 焊丝 · 链条 · 锚 · 炉灶(8) · 暖气片(3) · 餐具(8) · 浴缸/水槽(4) · 铸造件(5) 10.3 有色金属 金属 章 项数 覆盖范围 铜 74 81 铜锍 → 阴极精炼铜(9) → 铜粉(8) → 铜材(条/丝/板/带/箔 · 27) → 铜管(8) → 铜制品 镍 75 24 镍锍/中间品(3) → 镍锭(3) → 镍粉(2) → 镍材(条/丝/板/管 · 10) → 镍制品 铝 76 53 铝锭(3) → 铝粉(2) → 铝材(条/丝/板/管 · 29) → 铝箔(5) → 铝制品(门窗/容器) 铅 78 9 铅锭(3) → 铅板/带/箔(3) → 铅制品(2) 锌 79 12 锌锭(4) → 锌粉(2) → 锌材(6) → 锌制品 锡 80 11 锡锭(5) → 锡材(2) → 锡制品(4) 稀有金属 81 85 钨(6) · 钼(6) · 钽(8) · 镁(6) · 钴(5) · 铋(4) · 钛(10) · 锆(6) · 锑(4) · 锰(2) · 铍/铬/镓/铟/铼/铪/铊/锗/钒等(26) · 金属陶瓷(2) 工具 82 82 锹铲(7) · 锯(11) · 钳子/扳手(7) · 钻头/刀具(24) · 剪刀 · 剃刀(3) · 餐厨刀具(5) 杂项金属 83 38 锁(8) · 铰链/轮脚(8) · 保险箱 · 铃/钟(5) · 软管(2) · 焊条(4) · 瓶塞/标志牌 十一、机械设备-完整图谱(第84章 · 1,052项) 大类 子类 项数 典型商品举例 动力设备 核反应堆 7 反应堆 · 同位素分离器 · 未辐照燃料元件 锅炉/汽轮机 11 发电锅炉(按蒸发量) · 汽轮机(船用/40MW-/100MW-/350MW+) 内燃机 18 航空/船用/车用 × 点燃式/压燃式 × 功率分级 涡轮喷气/水轮机 21 涡轮风扇发动机(按推力≤25kN/>25kN) · 水轮机(≤1MW/1-10MW/>30MW) 通用设备 泵/压缩机 65 计量泵 · 手泵 · 离心泵 · 空调压缩机 · 阀门(13项) 制冷/空调 36 冷藏-冷冻组合机(按容积5级) · 空调(独立式/分体式) · 冷水机组 热水器/干燥机 23 燃气/太阳能/电热热水器 · 干燥机(按容量) 工程机械 起重/叉车 37 桥式/龙门/塔式起重机(20) · 叉车(6) · 电梯(2) · 输送机 推土/钻探 40 推土机(17,按功率) · 打桩机(2) · 采煤机 · 钻探机 · 扫雪机 农业机械 耕作/收割 35 犁(2) · 耙(3) · 播种机 · 割草机(6) · 收割机 · 挤奶机(3) 饲养/加工 6 动物饲料配制机 · 家禽孵卵器 工业专机 食品加工 12 面点机 · 巧克力机 · 制糖机 · 肉类加工机 造纸/印刷 52 造纸机(5) · 切纸机(3) · 印刷机(43) · 装订机(4) 纺织机械 68 纺丝机(6) · 清梳联合/梳棉机(27) · 织机(20) · 针织机(11) · 缝纫机(14) 金属冶炼/轧制 25 转炉(3) · 炉外精炼(3) · 热轧机/冷轧机(12) 机床 110 加工中心(7) · 车床(5) · 钻床(14) · 磨床(24) · 刨床(10) · 锻造机(31) · 冲床/剪切机 高新装备 半导体设备 34 单晶硅生长 · 研磨 · 抛光 · 切片 · 刻蚀 · 光刻设备 3D打印机 14 金属/塑料/橡胶/玻璃/石膏/陶瓷材料 × 增材制造 计算机 28 平板电脑 · 笔记本 · 巨型/大型/中型机 · 服务器 · 工控机 · 计算器(7) 十二、电气与电子设备(第85章 · 590项) 大类 项数 典型商品 电力设备 电动机 29 玩具用(≤37.5W) · 微电机 · 交流/直流电动机 × 功率分级 发电机/变压器 42 柴油发电机组(8) · 风力发电机 · 变压器(液体/干式) · 变流器/电感器 永磁体 6 稀土永磁体 · 金属永磁体 电池 一次电池 11 扣式/圆柱式/其他碱性锌锰电池 · 锂一次电池 蓄电池 9 铅酸 · 镍镉 · 镍氢 · 锂离子(按用途分级) 消费电子 家电 14 清洁机器人(7) · 榨汁机 · 搅拌机 · 电动剃须刀(4) 手机/电话 36 智能手机 · 无绳电话 · 车载电话 · 基站设备 音视频 56 麦克风(2) · 音箱(6) · 录音机(11) · 录像机(7) · 收音机(8) · 电视机/监视器(31) 电子元器件 电容器 14 钽电容(片式/非片式) · 铝电解 · 陶瓷电容(单层/多层) · 薄膜电容 电阻器 8 片式固定电阻 · 碳质电阻 · 线绕可变电阻 印刷电路 2 ≤4层 · >4层 半导体 19 二极管 · 晶体管(<1W/≥1W) · LED · 光敏半导体 集成电路 10 处理器/控制器 · 存储器 · 放大器 · 具有变流功能的半导体模块 通信/导航 发射/接收 28 广播电视发送设备(5) · 卫星地面站(5) · 雷达(5) · 导航设备(5) · 天线(13) 线缆/绝缘 电线电缆 19 绕组电线(铜制) · 同轴电缆 · 光缆 · 车辆/航空用线束 绝缘子 8 玻璃绝缘子 · 陶瓷绝缘子(输变电/其他) 其他 22 信号/安全设备 · 碳电极 · 电池废料(9) 十三、交通运输装备(第86-89章 · 521项) 13.1 汽车及零件(第87章 · 392项) 类别 项数 详细分级 乘用车 170 排量/功率/价格分级 ├ 内燃机轿车 80+ 汽油:≤1000cc / 1000-1500cc / 1500-2000cc / 2000-2500cc / 2500-3000cc / >3000cc · 柴油:≤1500cc / 1500-2000cc / 2000-2500cc / >2500cc ├ 纯电动车 20+ 按电机功率分级 ├ 混合动力车 30+ 插电混动/非插电混动 × 排量分级 ├ SUV 20+ 汽油/柴油/电动/混动 × 排量/功率 └ 特种车 若干 全地形车 · 高尔夫球车 · 雪地车 · 赛车 客车 17 机坪客车 · 大型(≥30座) · 中型(20-29座) · 小型(10-19座) 货车 18 非公路自卸车(2) · 柴油货车(车重≤5t/5-14t/14-20t/>20t) · 汽油货车 专用车 21 起重车(按起重量5级) · 混凝土搅拌车 · 医疗车 · 消防车 · 垃圾车 · 电源车 · 放射线检测车 底盘 6 货车底盘(按车重) · 非公路自卸车底盘 · 客车底盘 车身 3 乘用车 · 客车 · 其他车辆 零件 89 保险杠 · 安全带(2) · 安全气囊 · 天窗 · 刹车片/盘 · 离合器 · 变速箱(自动/手动) · 驱动桥(4) · 非驱动桥(2) · 车轮(3) · 悬挂系统(5) · 转向系统(5) · 消音器/排气管(3) · 油箱 · 散热器 · 滤清器(4) · 车锁(2) · 车窗玻璃升降器 · 雨刮器 · 后视镜 · 仪表板 · 车灯(4) 摩托车 12 ≤50cc / 50-100cc / 100-125cc / 125-150cc / 150-200cc / 200-250cc / 250-400cc / 400-500cc / 500-800cc / >800cc · 电动摩托 自行车 7 竞赛型 · 山地 · 越野(16/18/20英寸) · 城市 · 电动助力 挂车 9 野营用 · 农用自卸 · 油罐 · 集装箱运输 · 冷藏 · 其他货运 13.2 铁道、航空、船舶 类别 章 项数 典型商品 铁道 86 42 电力机车(直流/交流) · 柴油机车 · 客车/货车(5) · 轨道检测车 · 钢轨打磨车 · 转向架(2) · 车轴 · 集装箱(20英尺/40英尺×保温/罐式/其他 · 8) 航空器 88 38 直升机(≤2t/2-7t/>7t) · 无人机(航拍≤250g · 其他遥控 · 货运 · 客运 · 植保 · 测绘 · 20项) · 卫星 · 航空器零件(4) 船舶 89 49 客船(机动/非机动) · 油船(按载重5级 · 24) · 液化气船 · 集装箱船 · 散货船 · 渔船 · 军舰 · 挖泥船 · 钻探平台 · 浮船坞 · 充气筏 十四、精密仪器与医疗设备(第90章 · 263项) 类别 项数 代表商品 光学元件 22 光纤/光缆(11) · 偏振片 · 隐形眼镜 · 相机镜头(单反/缩微/复印) 眼镜 3 太阳镜 · 变色镜 · 矫正视力镜/挡风镜 望远镜 5 双筒望远镜 · 天文望远镜 · 单筒望远镜 照相机 20 特种用途(水下/航空/法医) · 一次成像 · 单反 · 数码相机(按像素) 摄影/放映 14 高速摄影机 · 数字电影摄影机 · 放映机(数字式) · 幻灯机 · 缩微阅读机 医疗设备 ├ 诊断成像 30 心电图仪 · B型超声(黑白/彩色) · CT(X射线断层检查仪) · MRI · 内窥镜 · 眼科仪器 ├ 治疗设备 15 呼吸机(有创/无创) · 麻醉机 · 血液透析 · 体外碎石机 · 心脏起搏器 ├ 矫形植入 10 假牙/牙齿种植体 · 人造关节 · 接骨板/螺钉 · 心脏瓣膜 ├ 实验室 14 气相色谱仪 · 液相色谱仪 · 质谱仪 · 基因测序仪 · 离心机(>1万转/min) └ 其他 29 注射器 · 针头 · 听诊器 · 血压计 · 体温计 · X光造影剂 · 急救药箱 测量仪器 ├ 测绘 20 罗盘 · 激光雷达 · 测距仪 · 经纬仪 · 水平仪 · 绘图机 ├ 力学测试 22 电子万能试验机 · 硬度计 · 天平(感量≤0.1mg) · 温度计/高温计(液体/非液体) · 流量计(6) · 压力变送器 ├ 电学测试 18 示波器(按频率/通道) · 频谱分析仪 · 网络分析仪 · 半导体参数测试仪 ├ 计量仪表 12 煤气表(2) · 水表(2) · 电表(按类型/电压6) · 转速计 · 里程计/计价器 └ 其他 22 X射线/放射性检测仪(10) · 色谱/质谱/光谱仪(14) · 工业相机/检测系统 · 教学模型/教习头(2) 十五、家具 · 玩具 · 体育用品(第94-97章 · 152项) HS章 类别 项数 典型商品 94 家具 79 办公家具(桌/椅/柜) · 厨房/卧室家具 · 床垫 · 灯具(吊灯/台灯/壁灯/圣诞树灯) · 发光标志 · 活动房屋 95 玩具/运动 61 玩偶(填充/非填充) · 电动火车/赛车 · 电子游戏机 · 滑雪板 · 冲浪板 · 高尔夫球杆 · 网球拍 · 乒乓球 · 健身器械(跑步机/综合训练器) · 钓鱼竿/渔线轮 96 杂项 69 钢笔/圆珠笔/铅笔(6) · 画笔 · 打火机(4) · 烟斗 · 梳子/发卡 · 香水喷雾器 · 保温瓶 · 纽扣(5) · 拉链(3) · 梳子/发夹 · 香烟打火机 97 艺术品 22 手绘画/素描 · 拼贴画 · 版画 · 雕塑 · 邮票(新/旧) · 收藏品(动物学/植物学/历史/考古) · 古董(>100年) 十六、总结 16.1 按产业层级的分布 产业层级 涵盖章节 条目数 占比 初级产品(农牧渔矿) 第1-15章, 第25-27章 ~2,000 22.7% 中间产品(化工/塑橡/金属/木材/纺织原料) 第28-40章, 第44-60章, 第72-81章 ~3,300 37.4% 制成品(服装/鞋帽/机械/电子/汽车/仪器) 第41-43章, 第61-67章, 第82-97章 ~3,500 39.9% 16.2 五个关键事实 # 事实 含义 1 8,827 个税目全覆盖,税率一律 0% 不是象征性开放;没有"敏感产品"例外清单 2 机械设备最多(1,052 项) 允许非洲零关税进口中国工业装备,同时也意味着非洲组装/制造的机械可零关税进入中国 3 汽车 392 项含 170 项乘用车 不仅涵盖整车(燃油/电动/混动),还有 89 项汽车零部件 — 为非洲布局汽车组装/零部件出口提供了制度框架 4 纺织服装 1,128 项 从纤维→纱线→面料→成衣,完整产业链零关税 — 对非洲纺织工业化是重要利好 5 半导体设备(34项)、无人机(20项)、3D打印机(14项)均零关税 高端制造同样开放,不局限于传统低端产品 数据来源:中国对非洲20国特别优惠关税待遇税目税率表(2026年版)
自从上班的地方不给用苹果之后,我就慢慢地将使用环境从苹果中迁移出来, 这篇博客说的是将音乐库从 Apple Music 迁移到 navidrome 中的一些实践。 需求 智能歌单功能 可以缓存音乐的客户端 可直接扫描音乐文件夹 综上,选择目前能满足我需求而且开发较活跃的 navidrome 。 navidrome 安装方面,用 docker compose 启动镜像,配置好之后可以开机启动,只要设置好 docker desktop 的开机启动即可。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 services: navidrome: image: deluan/navidrome:latest container_name: navidrome user: 1000:1000 ports: - "4533:4533" restart: unless-stopped # 自动重启 environment: PUID: 1000 PGID: 1000 TZ: Asia/Shanghai ND_TRANSCODINGENABLED: true volumes: - "/home/ruan/navidrome/config:/data" # 映射配置文件 - "/mnt/g/Music:/music:ro" # 映射音乐库 遇到的问题 alac 无损格式无法播放 之前通过 apple music 无损格式管理音乐库,所以音乐格式是通过m4a容器存储的。 但是 navidrome 的 web 页面和一部分客户端没办法直接播放m4a播放,这一点让我比较烦恼。 ...
一般来说,只要指定输入文件和输出文件的名称,ffmpeg就会自动根据后缀判定正确的格式。 ffmpeg我经常用来转换图像,存放在iCloud的图片如果小于1MB,就会自动下载。我利用这个特性,将漫画压缩到小于1MB放在iCloud上,用iPad看很方便。 图片视频裁剪 这种用法也适用于视频。 1 2 3 4 # crop=a:b:c:d # ab分别代表输出图片宽度和长度,cd代表裁剪矩形左上角在图片中的位置 # in_w代表输入图片的宽度,in_h代表输入文件的高度 ffmpeg -i "test.png" -vf "crop=in_w/2:in_h:in_w/2:0" output.png gif转mp4 这个需求是想要将gif转换成一段指定长度(10s)的循环播放视频。 1 ffmpeg -i "test.gif" -ignore_loop 0 -t 10s out.mp4 视频切片 裁剪从30s开始算起的30s视频 1 ffmpeg -i "test.mp4" -ss 00:00:30 -t 00:00:30 out.mp4 改变视频速率 将视频的速率修改为32Hz 1 ffmpeg -i "test.mp4" -r 32 out.mp4 拼接图片 1 ffmpeg -i cat.jpg -i dog.jpg -c copy -filter_complex vstack vout.jpg
一个炫酷的命令行程序它到底需要什么? 构建系统 命令行参数解析 日志系统 代码文档系统 第三方库可以用cmake管理,自从qt官方构建系统转到cmake之后,感觉cmake基本上已经成为c++项目的事实构建系统了。 命令行参数解析和日志系统可以使用gflags和glog,代码文档系统自然是通用的doxygen。 cmake 基本上可以把makefile淘汰掉了,makefile最致命的一点就是无法自动构建依赖。在c和c++中,源文件的头文件依赖如果使用makefile构建,要么就手动管理依赖(要命),要么就写个又长又臭的makefile来自动构建(还是要命)。在简单地学会cmake之后,就放心大胆地跟makefile说拜拜吧。 构建工程 有一些必须添加的首行比如指定cmake版本,添加源文件。 1 2 3 cmake_minimum_required(VERSION 3.20) project(cmdline) add_executable(${PROJECT_NAME} main.c) 还有就是引入依赖,这个工程我是基于glib做的。glib提供命令行解析、日志系统、单元测试等功能。 1 2 3 4 find_package(PkgConfig REQUIRED) pkg_check_modules(GLIB glib-2.0 REQUIRED) add_definitions(-DG_LOG_USE_STRUCTURED) include_directories(${GLIB_INCLUDE_DIRS}) 文档生成,引入Doxygen生成文档。 1 2 3 4 5 find_package(Doxygen) if (DOXYGEN_FOUND) message("Doxygen build start") doxygen_add_docs(docs ${PROJECT_SOURCE_DIR} ALL) endif() 命令行参数解析 命令行参数解析最常用的是posix标准getopt或者gnu的getopt,qt和glib都有自己的命令行解析工具。 我使用的是glib提供的命令行解析,简单用法跟getopt差不多。不过glib这个东西还扩展了一下用法, 有group这个概念,因为文档不详细我也没仔细研究。 ...
这边论文的basic idea比较简单,就是放出诱饵和不断改变网络位置(IP地址)来缓解网络侦察(reconnaissance)攻击。我认为它的实验很有意思,本来我以为会在路由器层面进行实现,通过改变IP包的方式对上层透明化。结果后来一看,发现竟然是在一台电脑上搭建虚拟机来模拟全部环境。这就是乞丐版实现吗?不过仔细一想,其实这种实验的可行性高而且也可信,简直就是最好方案啊。 还有就是这篇论文在实现它的协议时用到了很多的知识,对这些知识进行简单的了解会对网络空间安全方向有一个大致的了解。我认为这个还是很值的注意的。 Problem 网络攻击者会对IP地址进行探测,为了找出现有系统的缺点或者是监控这个系统。 Basic Idea 动态改变IP地址+大量释放诱饵(decoy)缓解网络探测攻击。而且在改变IP地址的时候还不能中断现有服务。 收获 [ZMap](https://www.usenix.org/system/files/conference/usenixsecurity13/sec13-paper_durumeric.pdf)能花45分钟把整个IPv4的地址探测完。 NMap是一个网络探测工具 honypots原来是用于吸引攻击者和学习攻击者模式的,在这篇论文中用来延长其扫描时间 用常用服务:ssh, ftps, sftp, udpchar, tftp来做实验 Thinking 这个方法需要大量的IP地址来释放诱饵,如果把迁移往协议栈挪上一层,到TCP/UDP层面会不会降低开销呢?但是端口号只有65535个,如果只在这么多个端口号中进行randomization会不会显得有些不够用?考虑到吞吐量,应该只是需要迁移端口就足够了。
最近对Web技术提起了一些兴趣,想学学web开发。现在搭建网站据我所知,PHP和java用的最多。但我就是喜欢特立独行,想试试别的东西。发现asp.net貌似不错,我对c#的观感挺好,而且现在.net框架也开源并支持跨平台了。所以就在vs上安装了.net的开发环境,准备学一学。 初始化一个工程后,看到运行环境里有docker。这东西这几年貌似很火,之前在图书馆里有看过相关的书籍,里面写的高深莫测,什么容器,什么集群花里胡哨也没详细看。正好趁现在有兴趣也学一学docker。 官方教程 上官网看了下,发现现在docker在windows下推出了desktop这个图形界面用来管理运行中的状态,而且整个界面还设计得很不错,简单易用。下载了安装包,配个版本较新的windows就能直接用。核心是用微软的wsl2跑的,原来微软切换到wsl2还有这个好处,毕竟有些东西只有Linux内核才跑的动啊。 打开docker desktop之后,会弹出一个框教新手怎么用的。我点了进去,发现这个教程直接就是一个用docker运行的一个http服务。首先是直接用git image把教程仓库clone下来,然后直接将这个仓库编译成docker的image,再运行这个image,就能直接在浏览器上访问localhost阅读这个教程啦。 这一下子吸引住了我:寥寥几步,就把docker的作用和使用步骤跟教程紧密结合在了一起,实在是很有意思。所以说,这种新兴的计算机技术或者是语言,看多少书都不如上官网看一遍tutorial然后实操,效果差太多了。一个优秀的项目肯定有优秀的官方教程,如果没有,说明它还不够优秀。 核心概念 感觉docker就是个虚拟机,专门设计用于运行服务的。下面以我的理解(仅仅是操作完了官方教程的水平)描述一下一些相关概念。 image 一个包含了程序和所需依赖的包,用docker构建 container 每次run image都会产出一个新的container,用来保存每次运行产生的变化,比如说环境变量,配置文件什么的。 volumes 有一些文件要保存在container之外的地方,这样更新image再运行container的时候,中间数据就不会丢失了。这个地方就叫volumes。 network container之间用network通信,处于同一个network的运行实例能相互通讯。 应用 总的来说,感觉这东西适合运行一些不会关闭的软件,比如监听80端口的web服务。也有一些很有意思的应用,比较广泛的应该就是github actions。jekyll就能通过docker来构建和发布GitHub pages。参考helaili写的jekyll-action 在了解过docker的操作流程和基本概念之后,这东西很容易搞懂。原理就是创建一个ruby的container,在这个环境里运行一个简单的shell脚本。这个脚本的作用是下载仓库->安装jekyll依赖->构建jekyll->发布网站。非常有意思,脚本名字是entrypoint.sh,有兴趣的可以看看。 我跟着这个仓库的README试了一下,真的非常实用。再也不用局限于GitHub自动构建的jekyll版本和插件啦,超爽! 像这种CI(Continuous integration)工具,能实现很高的自动化。像是打包发布安装包,运行单元测试之类的机械性工作都能完全自动运行。花在构建和学习自动化工具的时间我认为是非常值得的。CI工具走的比较前的貌似是gitlab,glib库就是很标准的例子,还有就是gtk的官网也是用CI构建的。github算是比较晚的,2018年才推出。 参考 Docker Desktop Introduction to GitHub Actions
我一直都对C语言情有独钟,是受《C语言点滴》这本书的影响。glib库作为一整个gnome的底层架构,在实现了类似于c++ std库的功能下,还包括了文件系统,多线程,定时器这些跨平台的方便组件。在跨语言领域上,也有完善的g-object系统bind各种语言。如果需要编写一个完善的库,可以说使用glib是非常合适的。我准备过一遍glib参考手册,然后再读一读源码,写一些使用这个库的使用方法和抽象概念。 前几天glib官方的参考手册移到了gtk的域名下进行管理,整个界面变得现代化了很多。加上之前的gtk官网更新,感觉gtk系列也要慢慢地崛起了。当然,跟qt系的使用率还是没法比。 基础数据结构可以类比c++的std标准库,数据结构只包括glib库的一部分。论使用的便利当然是不如c++的,但加上glib的其它各种组件,用起来还是很不错。如果想要弄清楚用法,直接查看glib代码仓库的单元测试最正确全面。在这里只简单谈谈我感兴趣的地方。 GArray 类似于c++中的vector,但是功能没有那么强大。new的时候需要指定数组元素的大小,但是不需要指定元素个数。也就是说new出来的GArray都是空数组。而且也不能一个一个地添加元素,只能添加数组。内置有排序,二分查找,引用计数,各种删除操作。 将这个数据结构跟vector进行对比其实是不合适的,vector致力于取代c的数组,而GArray则是对c数组进行补充。从只能append_vals中就可以看出来,用法大约是先暂存在c数组里,然后一次性添加到GArray中,再进行各种操作。当然,一个一个地添加也是可以的。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include <glib.h> gint comp(gconstpointer a, gconstpointer b) { double x = *(double *)a; double y = *(double *)b; if (x < y) return -1; else if (x > y) return 1; else return 0; } int main() { GArray *arr = g_array_new(FALSE, FALSE, sizeof(double)); double t[] = {1., 5., 6., 8., 3., 9.}; g_array_append_vals(arr, t, sizeof(t)/sizeof(double)); g_array_sort(arr, comp); g_print("len: %d\n", arr->len); // len: 6 double *p = (double *)arr->data; /* 1.000000 3.000000 5.000000 6.000000 8.000000 9.000000 */ for (int i = 0; i < arr->len; i++) g_print("%lf ", p[i]); } GByteArray 字节数组,是GArray的子集,元素类型固定为Byte,在使用上方便很多。 ...
有时用vim打开一些文件时,会显示乱码。打开一些专辑的cue文件时,foorbar2000也会显示乱码。这都是编码不一样在作怪。 我受编码问题的苦久矣,从日常用msys2环境下的一些不兼容,到串口调试乱码问题,甚至在编程时使用注释和git时,都有乱码的困扰。 编码不统一的弊病是历史遗留问题,最开始使用计算机的家伙们只用英文。而英文总共就26个字符加上一些其他符号,所以所有的可打印字符只需要用8位的char就可以全部保存。后来等到使用其它语言的人们也需要打印字符时,8位的char就没办法保存了。在这期间,出现了各种解决方案,这就是编码问题的起源。 关于编码的问题,Li Yucang的 彻底弄懂Unicode编码 已经讲的非常透彻,我就不再详细复述。 我之前听说utf-8时在Plan 9中发明,然后被各种Unix变体接受,从而广泛使用的。涛叔的 UTF-8往事 有提到这方面的一些历史。 uchardet 这是一个从Mozilla项目中整出来的检测编码工具,ByVoid的 博客 有讲到这个工具诞生的一些事 iconv 通用的编码转换工具 实践 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 $ ls CDImage.cue $ uchardet.exe CDImage.cue SHIFT_JIS $ iconv.exe -f shift-jis -t utf-8 CDImage.cue >CDImage-utf8.cue $ iconv.exe -f shift-jis -t gbk CDImage.cue >CDImage-gbk.cue $ ls CDImage.cue CDImage-gbk.cue CDImage-utf8.cue $ head CDImage.cue PERFORMER "" TITLE "▒N▒h▒▒ӂ▒▒[ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒T▒FKud Wafter Original SoundTrack" FILE "CDImage.wav" WAVE TRACK 01 AUDIO TITLE "Track01" PERFORMER "" INDEX 01 00:00:00 TRACK 02 AUDIO TITLE "Track02" PERFORMER "" $ head CDImage-gbk.cue PERFORMER "" TITLE "▒▒▒ɤ▒դ▒▒` ▒▒▒▒▒▒▒▒ ▒▒▒▒▒ص䣺Kud Wafter Original SoundTrack" FILE "CDImage.wav" WAVE TRACK 01 AUDIO TITLE "Track01" PERFORMER "" INDEX 01 00:00:00 TRACK 02 AUDIO TITLE "Track02" PERFORMER "" $ head CDImage-utf8.cue PERFORMER "" TITLE "クドわふたー 初回限定版 初回特典:Kud Wafter Original SoundTrack" FILE "CDImage.wav" WAVE TRACK 01 AUDIO TITLE "Track01" PERFORMER "" INDEX 01 00:00:00 TRACK 02 AUDIO TITLE "Track02" PERFORMER ""
我用apple music听音乐。天天静听是我用的第一个音乐软件,之后是qq音乐,再之后是网易云音乐。用过的这些软件都有些不合心意,没有那种能用一辈子的感觉。就拿网易云音乐来说吧,因为版权问题各种没法听,明明昨天可以听,今天就不行;曲库不全;喜欢的音乐莫名其妙的消失;烦人的各种社交功能;官方发过来的不定期废话软文…… apple music最好用的是上传功能,我能上传自己的音乐。上传的音乐统一存在音乐库进行管理。上传之后我能用电脑,手机各个平台听。还有就是它是一款纯粹的音乐软件,没有广告,没有社交,用起来像在用MP3。再有就是价格便宜,国区每个月也就10块钱,配有近乎无限的音乐上传数目,现有的音乐全部能听。除了曲库不太全外,基本上没有任何的缺点。而曲库不太全在完善的上传功能下也不算什么缺点了。 知乎用户守护未来有一篇文章提到apple music的廉价订阅方法,我用的是合租。 如何管理自己的音乐 依靠两个工具mp3tag, foobar2000,以专辑为单位管理音乐。简单来说就是将专辑歌曲统一转换成Apple lossless格式,找不到无损的就按照原样保存,然后用mp3tag打上合适的标签,专辑封面也保存好。用itunes传上自己的资料库,音乐文件夹同步上传到云盘进行备份。 foorbar2000 强大无匹的音乐播放器。基本上你能找得到的音乐格式它都能播放,有些需要安装相应的插件。我最喜欢它的音乐格式转换功能,能把标签也保存下来,无敌! Mp3Tag 虽然名字叫mp3,但是所有的音乐格式都能打上标签(被名字耽误?)。标签有很多种,我以苹果音乐中会使用到的标签作为标准。 名称 作用 Title 歌曲题目 Artist 一般是歌手 Album 专辑名 Year 发行年份 Track 第几首 Genre 种类 Album Artist 专辑作者 Discnumber 第几张碟 注意 如果一个专辑中有不同的artist,就需要特地填入album artist,否则苹果音乐会识别为两个不同的专辑。也就是说,它通过专辑名+作者的方式标识专辑。 苹果音乐上传时会用某种算法自动匹配曲库,如果没有匹配成功才会上传。其实《歌物语》在曲库中是有的,但我不喜欢那版封面还有罗马音的歌名,所以才重新上传。也就是说可以随意修改自己上传的歌曲的标签。 可以把苹果音乐中的歌当成MP3/320K的音质,因为我上传的无损音乐并没有无损标志。听工友说BSD16bit的音乐和BSD24bit的音乐听起来很不一样,而24bit和32bit的音乐就听不出什么差别。而CD的位数是16bit,再加上压缩编码……因为我听不出MP3/320K和CD格式有什么不同,所以我对这方面倒不是很纠结(主要是莫得钱)。 安卓端也有苹果音乐软件……
明明我应聘的是嵌入式,却要我开发一款ios软件?我以前可是从来都没有碰过苹果系的产品。结果这一趟走下来,从注册公司开发者账号,开发软件,上架商店,也有一些收获。这篇文章主要是一些感想,记下来备忘,也想给一些想做苹果开发者的朋友们一些提示。 开发者账号 首先是开发者账号,只要是要做ios开发,没有苹果的开发者账号你甚至没办法把程序发出去给别人用。 开发者账号还有个好处就是可以构建测试版本,通过testflight软件发布的测试版程序根本不需要苹果审核。名额足足有10000人,可以添加appleid自动发送测试邮件,也可以发送公开的邀请链接邀请别人下载安装软件。有些特殊需求的软件甚至不需要发布在app store上,使用人数也没这么多,那么testflight就够用了,不用走审核上架的流程。总之申请账号越早越好。 申请 开发者账号分公司账号和个人账号,是哪个就申请哪个。申请公司开发者账号麻烦点,我那时候花了3-4天,期间苹果又是给老大打电话,又是给老板打电话确认。我认为苹果是通过这种方式在收集公司信息,真是个可怕的公司。至于申请方法,没什么值得一提的,按照官网流程走就可以了。 还有一件事,当时我不知道怎么判断账号是否是开发者账号,其实直接上开发者中心登陆账号,如果账号左边的栏目不多,比如没有App Store Connect、Certificates等栏目,就说明还不是开发者账号。我发一张开发者账号的截图出来参考。 开发 我到处查看资料,发现swift+storyboard的方式最方便合适。然后就是看了几天教程,一步一步把工程搭起来。期间谷歌和苹果开发者平台以及百度(排名分先后)给了很大帮助。 swfit 学语言就那么一回事,反正也不深入。先看几天基础,比如怎么定义变量,定义函数,条件判断,循环怎么写,内存怎么管理,就可以开始着手了。 swift的内存管理是计数应用,不知道的可以点进wiki了解一下。因为不够熟练,我在这个地方遇到过问题。将函数内定义的类直接放到后台运行,结果函数一退出,程序就把那个后台就给我GC掉了,当时想了下才发现这个问题。 对于c/c++出身的我理解那个变量的管理方式有点困难,很是费了一番功夫。比如var s: String?和var s:String的不同之处。印象中这种语法是从c#开始使用的,通过这种方法能有效地避免指针的出现,我认为这是一种很巧妙又优雅的解决方案。 用过的东西包括定时器、??语法、闭包lambda、还有就是用NSLog替代print,NSLog前面自带时间,调试好用。还有就是直到后来我才发现if没必要写括号,尬住了。 我一直都没搞懂在引用计数下闭包是怎么管理生命周期的,也没搞懂let到底是怎么区分常量的(类比c中指针const的位置),闭包那奇葩的语法只会用(写是不可能写的……)。总之就是,我又不专门搞苹果开发,学那么多干嘛。 storyboard 用swift花不了几天时间,摸索storyboard怎么用和画软件的界面花的时间才多。不过搞熟了之后速度还是很快的,简单明快,拖拖拉拉就完事。我在弄这玩意的时候爽得很,脑子不用动,头发就少掉。 基本上全部的显示都可以在storyboard中做,绘制页面,页面间的跳转,直接把view拖到page对应的类里面,填上名字就能用。segue给一个唯一名称,在代码里直接就jump。打开storyboard,截屏就是一个软件原型图,不用再搞其它花里胡哨。总之界面开发就一个字,爽。 这东西没什么可讲的,慢慢摸索就能学会。我没怎么看那些教程(大多都又长又臭),都是一个一个地方点几下,查文档,配合搜索引擎。 一些废话 百度的苹果开发都是全是基于objc讲的,而且都是前几年的比较多,可能是前几年流行过一阵子的ios开发有关?我读的大学里还有一个专门的苹果机房,听说是前几年配置的。不过配置之后就没开过几门课,我读的时候也没有开,因为根本没人选。就我个人本身而言的话,苹果电脑贵的要命,每年还要几百块的账号注册支出,比我家拉网线还贵,实在是舍不得。而对比国外同事人人一台苹果的情况之下,看来我们还是不够富有啊。 谷歌搜索出来的信息就全是用swift讲的。从这点可以看出国外的软件开发更加繁荣,个人开发者和小公司开发者很多。因为中小型应用很多,所以对新技术的接受程度普遍而言非常高,软件开发氛围是真正的好。而对比国内,其实可以发现软件公司们就像土地兼并一样,大厂们不断吸收中小软件公司,环境很是恶臭,我觉得这点非常不好。像是以前很好用的快图和天天静听,都是在收购之后销声匿迹了,如果…… 公司配置的二手苹果笔记本好难用,电池还鼓包。这个软件开发历时约两个月,开发效率让我有点惭愧,不过考虑到以前苹果都没摸过,仔细想想也可以接受?还有就是,我好像要一台苹果笔记本! 上架 上架其实很简单,跟着官方的指示走就行,原则就是把审核员当成客户对待。我开发的是物联网应用,没有产品根本没法用,就一个死页面。不过我准备了产品的官网,产品的介绍PDF,软件使用视频(重要)之后,审核员很快(2天)就给我通过了,通过之后就能在app store上搜索到开发的程序啦😄。