阿里开源270亿参数原生多模态模型,家用显卡可跑,编程与办公表现超越Qwen3.7-Plus。 [..]
Read More前两篇讲了架构和界面,这篇把 KAndroid Demo 落到代码:按 model、api、core、app 四个模块搭建,用最简单的方式实现注册、登录和券列表这个最小化可用产品。 前两篇文章Android项目重构之路:架构篇和Android项目重构之路:界面篇已经讲了我的项目开始搭建时的架构设计和…
前一篇 《Android项目重构之路:架构篇》 把项目分成模型、接口、核心、界面四层。界面变化最频繁、也最容易乱。规划界面层,至少守住规范性、单一性、简洁性。 一、规范性 编码习惯各不相同:缩进有人 4 空格、有人 2 空格;变量有人 mValue、有人直接 value。不设规范,久了必乱。规范没有…
接手一个按功能切得过细的 Android 项目:17 个模块、好多模块只有两三个类,应用本身最多五个模块就够。模块边界模糊,类职责不清,找 Activity 经常只能翻 Manifest。代码又乱又臭,改一个 bug 冒出另一个,没法做新功能,更满足不了多客户定制。于是重构:搭一个易维护、易扩展、可…
2016 年 2 月 18 日凌晨 5 点,Apple Pay 在国内上线。选移动支付时,支付宝、微信支付之外又多了一个选项。它的本质就是刷卡:用手机代替实体卡,用 Touch ID 代替签名。 手机内集成 NFC 天线和安全芯片,空中发卡把银行动态加密信息放进安全芯片,再经 NFC 完成支付。相当…
这篇文章以例子为主,覆盖 Java IO 的绝大部分内容(不含 NIO):从 File、字节流、字符流讲到管道流、压缩和对象序列化。 代码是写出来的,不是看出来的;每个案例都配有源码和运行结果,方便对照着敲一遍。 写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和…
自己写音乐播放器,第一步是拿到本地 MP3。可以递归扫 SD 卡,也可以查系统媒体库 MediaStore——后者自带歌名、专辑、歌手和时长。 一、遍历文件过滤 MP3 本地音乐在手机存储里。一种做法是遍历文件,按后缀过滤: /** * 扫描 Sdcard(外部存储)下所有文件 */ public …
广告栏轮子很好找,但完全合用的并不多:有的绑死 Picasso 吃内存,有的少于三页就抛异常。本篇从 ViewPager 起步,一步步补上无限轮播、切换速度、自动播放、指示器和点击回调,造一个够用的 Banner。 开源界有一句很有名的话叫“不要重复发明轮子”,当然,我今天的观点不是要反驳这句话,轮…
很多项目都要做图片选择和上传。不必重复造轮子,选一个现成的图片选择器库,就能做出类似 QQ、微信的选图体验,再补上上传即可。 一、效果与原库 选择器效果如下: 原码地址:https://github.com/easonline/AndroidImagePicker 这个选择器带了单选、多选、剪切、预…
LocalBroadcastManager 只能做应用内通信,比系统 BroadcastReceiver 更安全、效率更高,也是官方推荐的应用内广播。系统广播走 Binder;名字里的 Local 容易让人以为它底层也是 Binder。点进源码会发现:更安全高效的实现其实很眼熟——Handler。 …
反思技术圈的造神现象,作者写下对程序员这个职业的理解:程序员首先是雇员、然后是工程师;比起创造力,工程能力对这个职位更为重要。本文经授权转载自新浪微博 @Easy,作者 Easy,职鹿 JobDeer.com 创始人。 今天看到鸟哥的微博,说了些一直想说的话。正好猴年来了,就展开聊聊所理解的程序猿这…