24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

网站首页 > 软件开发资讯 > 安卓开发

【常州安卓开发培训班】未来我们携手播种希望

2018-05-02 17:13:55 东方博宜 阅读

JSON


人们在考虑性能时往往都会想到 JSON。有很多的 JSON 库。我的第一个警告是:人们喜欢纯粹通过性能来看待 JSON 库。这是一个错误。我收到了我最大的请求(150千字节,30,000行,巨大的 JSON 文件)。我分别用 GSON 和 Jackson 解析了它们。它们相差大约 20 毫秒,对于那个巨大的文件来说,这并不疯狂。


我的第一个建议是:更多地关注易于使用的东西,有很好的文档的库。你希望得到支持。你不用花几个星期让开发人员尝试找出原因,就因为 stackoverflow 没有答案。除非你对性能有超高的要求,GSON 和 Jackson 是使用最多的,最受欢迎的,特别是在 Android 上,GSON 更受欢迎。


Moshi 是 Square 采用的库。它跟 GSON 非常相似。我试图就如何使用好 GSON 给出了一些意见。你可以同意或不同意这些观点,但都不会错。


如果你关心 JSON 解析性能,并希望它更快,LoganSquare 是一个很好的选择。它们在编译的时候完成了其他库需要在运行时完成的工作。与其他的库相比,这将使你节约大约 1/4 的时间,或四倍的性能提升。如果你真的关心 JSON 性能,你不应该使用 JSON。


相反,你可以使用 Flatbuffer。 JSON 人类可读,Flatbuffer 不是,但是因为这样,它丢掉了其他的不需要的负担。但是 Flatbuffer 与 JSON 相比,Falbuffer 解析几乎不花时间。Facebook 做了这个转换。他们发现启动时间增加了 10% 到 15%,启动时间有所改善。他们也观察到内存使用效率更高。但是使用起来比 JSON 更难,所以谨慎使用。


数据库 - SQL


对于数据库,我们知道常见的是 SQLite - 标准 Android 库。


SQLBrite 是 SQLite 上一个常见的简单库;它为你提供了数据库的 reactive 接口。你可以监听你的用户。如果你的用户有任何更改,你会收到通知,你可以随即更新用户界面。这是一个非常小的库。和 SQL 兼容的很干净。


SQLDelight 也来自 Square。他们写了很多库。它试图避免成为一个完整的 ORM,因为 ORM 会泄漏太多你的代码,并且往往迫使你做太多的事情,当然它仍然试图使数据库的工作更容易些。它使得 API 类型安全,使得 SQL 语句组织的很好(它尝试使其更容易些,同时不会太重)。


如果你愿意去做一个完整的 ORM,那么有很多很好的库:GreenDAO,OrmLite,DBFlow 是一些比较受欢迎的(还有许多其他选择)。他们都会说,它们在性能方便表现最好。每个库都有些图表,这些图表显示它们比其他的方案快 100 倍。我的建议是易用性是第一优先事项,然后再考虑是他们在性能上是不是会更好。


数据库 - NoSQL


Realm 是 NoSQL 的方法。它超级快。与其他可比较的数据库不同,Realm 支持的文档非常多。这可以最终节省你大量的开发时间,而且无所谓数据库类型。


Google 推荐的另一种 NoSQL 方法是 LevelDB。键值对,但是它可以说是 “你能够弄清楚该怎么做,但你必须自己弄清楚每一步”。 Realm db 可以帮助你避免这种情况。


Realm 数据库需要特别注意的地方是它的大小(我认为我们最初添加它时,我们的应用程序大小增加了一倍)。原因是它是一个本地库。对于每个芯片架构,它们在你的应用程序中都包含了 Realm 数据库的完整副本。为了避免这种情况,你可以将此代码放入 Gradle(参见幻灯片中的代码),并为每个架构生成一个单独的 APK。你把它分解成多少个版本,大小就会减少多少。这也会使你的内存节省很多。对于任何本地运行的 C++ 代码,这是正确的做法,所以在 Crashlytics 和其他一些受欢迎的库中,你能看到同样的收益。


还有另外一款很酷的 Google Play 商店的应用程序 Native Lib。 - 它在 Play 商店中,它会显示些本机库,以便你可以看到你是否为你的 APK 下载了不适用于你手机的代码库。这样做会减少内存使用。如果你就是在寻找手机上保存数据的方案,你可能希望在手机上存储数据。如果你正在构建一次性的应用程序,请不要保持数据。如果你正在使用 Realm 在存储量很小的手机上构建应用(为什么在这种情况下你的应用需要占用大量的存储)?但总的来说,这是一个非常好的数据库解决方案。


数据库 - 移动平台


另一个方面是移动平台:移动开发人员的梦想,我们不再需要这些服务器指南。我们也可以自己构建应用程序。以前的 Parse 是最好的例子(可能会安息)。


现在移动平台中最有名的就是 Firebase 和 Realm。它们都是 NoSQL 模型,它们有一些查询方面的挑战,但是构建速度非常非常快。非常适合进行同步更新。聊天是最常见的解决方案,你发送聊天消息,突然所有的手机都能获取更新。不必构建数据库,不必拥有服务器,你可以使用其中一个解决方案。它使得构建过程非常迅速,马上完成应用并推向市场。而且性能也特别好。


Realm 与 Firebase 的区别是它有离线优先的优点。它们都可以脱机,但是 Firebase 是事后补救,而 Realm 是事先就设计好了,Realm 在许多方面都支持离线。许多应用程序几乎不需要在线行为。如果你正在考虑运行应用跟踪程序,我们希望同步我们的运行状态,而且我们希望所有功能都能完全脱机运行,之后在线工作也正常。Realm 就会脱颖而出。

常州东方博宜是一家专注IT,互联网,电脑方面的顶尖培训机构,欢迎社会及院校有志互联网营销,搜索引擎营销的人士,来东方博宜报名学习,互相交流。

常州东方博宜地址:常州天宁区延陵西路2号工人文化宫5号楼

 2.新北区太湖东路9-4号常州创意园E12


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2018 www.czos.cn