为什么 Android 设计这么复杂?

2019-08-11 15:54:23 +08:00
 Cheez

我想在 APP 登陆,保存一下 cookies,都得实现好几个类。我在 python 和 node.js 都只需要几十行代码。

我用的是 okhttp,是因为这个库本身比较复杂吗?有没有像 python 的 requests 一样轻松简单的库

11443 次点击
所在节点    Android
36 条回复
eminemcola
2019-08-11 16:09:15 +08:00
首先 OKHTTP 和 Android SDK 无关…
pdog18
2019-08-11 16:12:54 +08:00
okhttp 设置 cookiejar 就好了,然后看你想如何保存,这个需要你来自定义,其实也可以几行代码就好了。
yinzhili
2019-08-11 17:37:26 +08:00
这是因为 java 语言相对比较繁琐
你要去用 ObjectiveC 做 iOS 开发也会发现,复杂度也是高于 py 和 node 的,到时候岂不是要来抱怨 [iOS 设计这么复杂]
iPhoneXI
2019-08-11 18:06:38 +08:00
试试 kotlin ?
janus77
2019-08-11 18:10:56 +08:00
你说的复杂是代码行数吗?
如果是的那怪 java 吧
如果不是的,只能说明你不熟悉客户端开发的理念
hoyixi
2019-08-11 18:12:07 +08:00
你说的是一回事吗,Py 和 node 都是服务器端,Android 是客户端

Web 用浏览器登录,浏览器帮你做了不少工作;如果自己实现客户端,维护一些状态、且和服务器保持一致,当然你得自己写代码
ochatokori
2019-08-11 18:26:58 +08:00
其实你只是觉得 java 干嘛都得搞个类和 pyjs 这些动态语言相比麻烦得不是一点(我就是这样
wakan190
2019-08-11 18:31:02 +08:00
python 主要面向过程的,会直接些
HuHui
2019-08-11 19:21:07 +08:00
api 实现的粒度更细吧
AlvaIM
2019-08-11 19:22:51 +08:00
封装好了的话都不会麻烦, 主要是封装得不行
locoz
2019-08-11 19:25:31 +08:00
@eminemcola #1 Python 的 requests 库也是第三方库,也和 Python 标准库无关
locoz
2019-08-11 19:27:27 +08:00
复杂不是 Android 的问题,而是 Java 的问题,语言设计者的理念不同导致了 Java 写起来会比 Python 繁琐一些。
luozic
2019-08-11 19:29:20 +08:00
Java 自己的坑 ,可以试试 kotlin
lihongjie0209
2019-08-11 19:30:35 +08:00
首先这个和安卓没关系

其次这是设计理念的问题, 脚本语言适合一次性的简短的任务, 当然直接撸最好了. 稍微复杂的一点的任务, 需要多人维护的, 需要扩展性的, 不管是什么语言都需要 OOP 和设计模式那一套.
godlovesxcjtest
2019-08-11 19:34:15 +08:00
保存 cookie 有一个 github 项目,一行代码基本上就能搞定
BBCCBB
2019-08-11 20:51:31 +08:00
okohttp 只是一个基础库, 你可以用包装了他的库,比如 retrofit 或者 feign.
就想 python 里的 requests 页包装了 urllib3. 如果你用 urllib3 自己撸,也有很多事情要做.
YUyu101
2019-08-12 00:23:45 +08:00
没办法,类多一是写的人爽,思路清晰,二是扩展的人爽,只要继承实现,其他的逻辑都不用动,如果只想简单用用就会很不爽,因为你为了一个小功能而付出巨大的时间成本搞清他是怎么实现的
Building
2019-08-12 00:32:44 +08:00
正如你所说的,你觉得 Python 和 node.js 比较简单,是因为复杂的别人都在库里帮你写好了。
jinliming2
2019-08-12 02:03:54 +08:00
Java 强类型,很多地方限制,所以比较繁琐。
py、js 弱类型,所以相对比较容易实现,把类型推导交给解释器。
语言面向的方向不同而已。
MMMMMMMMMMMMMMMM
2019-08-12 05:08:37 +08:00
Java 想要舒服的写代码,要备好一堆 code generator

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/590939

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX