开源了一个 Android 数据框架,求轻拍 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kifile
V2EX    Android

开源了一个 Android 数据框架,求轻拍

  •  
  •   kifile 2015-09-20 10:59:50 +08:00 14175 次点击
    这是一个创建于 3752 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Cornerstone

    之前写 Android 项目的时候,针对数据管理,提取了一个数据管理框架,然后最近觉得对于初版而言应该是差不多了,所以正式发布了,求各位 v 友围观,如果看得过眼, fork 一下就更好了。

    主要的思路是将数据类管理,数据管理,数据监听,数据获取这四个部分分别抽离,建立一个框架。
    利用 Android 自身的生命周期,在数据类管理使用自动计数,当没有人继续使用时,就释掉数据。

    项目地址:https://github.com/kifile/Cornerstone

    18 条回复    2015-09-22 09:37:37 +08:00
    duandashen
        1
    duandashen  
       2015-09-20 11:05:43 +08:00
    学习学习~
    cxshun
        2
    cxshun  
       2015-09-20 11:41:40 +08:00
    看着不错,但一进去看到 idea 的配置文件,感觉就不大好了。
    建议楼主去掉,毕竟不是所有人都用 IDEA ,还是有些人坚持 eclipse 的 ADT 的,所以 IDE 的配置文件没有意义。

    PS :可惜不是做安卓的,就看个热闹罢了哈。楼主加油!
    kifile
        3
    kifile  
    OP
       2015-09-20 11:48:39 +08:00
    @cxshun 是上传到的 maven 中央库了,所以如果要使用的话,应该是从 maven 库中获取,项目只是一个存放代码的地方,但是还谢谢支持
    orzfly
        4
    orzfly  
       2015-09-20 13:47:46 +08:00
    @cxshun 为什么就没有意义了呢?按照你这样的逻辑:

    仓库里要是放一个 .editorconfig 。你就感觉不太好了,又不是所有人都需要 .editorconfig ,毕竟又不是所有编辑器都支持 EditorConfig ,建议楼主去掉,所以 .editorconfig 文件没有意义。

    仓库里要是放一个 .travis.yml 。你就感觉不太好了,又不是所有人都需要 .travis.yml ,毕竟只有 Travis CI 才需要这个文件,建议楼主去掉,所以 .travis.yml 文件没有意义。

    ……

    这不是很奇怪吗?
    spacewander
        5
    spacewander  
       2015-09-20 14:44:56 +08:00
    @orzfly
    .editorconfig 是通用的,而且仅有开发者会编辑它。
    idea 是 IDEA 特有,而且还是由 ide 自己处理的,里面的东西会随着项目配置变化而变化,很容易污染到 git diff 记录。
    kifile
        6
    kifile  
    OP
       2015-09-20 14:54:56 +08:00
    @spacewander 我来解释一下,为什么会留着.idea 吧,因为在我印象里,以前在别的项目删除过一次.idea,但是直接导致了,我使用 androidstudio import 项目失败,因此系统无法识别他是一个 android 项目。虽然我不知道现在还会不会这样,但我还是把.idea 留着吧,万一有问题呢。

    在 eclipse 中,也有一个.project 文件啊,删除之后,也会导致整个项目无法被识别。

    所以我觉得留着是一个保险的策略。
    cxshun
        7
    cxshun  
       2015-09-20 17:44:56 +08:00
    @orzfly 不要激动,我只是说 IDE 相关的配置尽量不要放上去,没说绝对。喜欢放就放呗,不喜欢就不放。放的原因是自己觉得某个 IDE 很好,也想让大家知道那个好,用那个;而不放的原因就是想让大家去自由选择,不会有多余的东西。
    @kifile 只是提个建议而已,楼主觉得可能有需要就放着,没绝对的,不需要太在意。
    bcxx
        8
    bcxx  
       2015-09-20 17:46:32 +08:00
    @kifile gitignore 一下不就好了么……
    kifile
        9
    kifile  
    OP
       2015-09-20 18:51:17 +08:00
    @bcxx 看我上面的帖子,,,加入.gitignore 之后,项目架构无法识别了,好吧,不用纠结这个了
    scola
        10
    scola  
       2015-09-20 19:24:19 +08:00 via Android
    先 star ,上班再看
    iluhcm
        11
    iluhcm  
       2015-09-20 22:41:00 +08:00
    @orzfly .idea 是本机项目配置文件,里面包含了本地 sdk 存放地址,每个人的.idea 配置文件都不一样,所以实际上上传到项目中并没有用。
    headwindx
        12
    headwindx  
       2015-09-20 23:20:59 +08:00
    能处理多线程操作数据库吗?
    orzfly
        13
    orzfly  
       2015-09-21 00:52:03 +08:00
    @cxshun
    > 放的原因是自己觉得某个 IDE 很好,也想让大家知道那个好,用那个。
    > 而不放的原因就是想让大家去自由选择,不会有多余的东西。
    我回帖的主要目的就是为了对你“毕竟不是所有人用 IDEA 的就应该去掉 IDEA 的配置”这一思考模式提出反对。首先你需要明白 .idea 不仅仅是 IDEA 所产生的文件,更是其识别一个工程所必须的。再者,在仓库里放上 IDE 配置文件难道不是为了方便这些 IDE 的使用者吗?很多开源项目里甚至会提供各种 IDE 、编译工具的配置文件,按照你的想法岂不是都不应该放,让大家自由去选择吗?

    @spacewander
    * “.editorconfig 是通用的”:我已经说过了,.editorconfig 并没有覆盖到所有的编辑器。
    * “ idea 是 IDEA 特有,而且还是由 ide 自己处理的”:我还可以说,.sublime-project 也是 Sublime Text u 的,而且还是 Sublime Text 自己处理的。
    * “里面的东西会随着项目配置变化而变化”:难道一个项目的配置变化就不重要么,就不需要版本管理吗?

    @iluhcm
    * “所以实际上上传到项目中并没有用”:楼主都说了,去掉 .idea 之后会导致项目无法被 IDEA 系的 IDE 识别,这分明是 IDE 项目文件啊。
    * “里面包含了本地 sdk 存放地址”:虽然楼主的项目的 .idea 里真的没有出现任何绝对路径,但我也确信 .idea 里是会有绝对路径的情况的。这种情况下我更愿意这是使用姿势的问题(例如我认为可以通过环境变量来解决这样的问题)。与此同时,在项目配置文件里出现绝对路径也不是只有 IDEA 一家, Visual Studio 的项目文件里一样会出现本地的依赖路径,这时候难道你要说“因为项目文件里面除此之外的数据都是有用的所以这个文件只好留着”了吗?

    --

    另外,我觉得各位也不应该全盘否定 .idea 也不应该全盘接受, JetBrains 官方是有对 .idea 如何版本控制有一篇文章的。

    https://intellij-support.jetbrains.com/hc/en-us/articles/206827587-How-to-manage-projects-under-Version-Control-Systems
    http://stackoverflow.com/questions/11968531/what-to-gitignore-from-the-idea-folder
    MASAILA
        14
    MASAILA  
       2015-09-21 00:54:00 +08:00   3
    orzfly
        15
    orzfly  
       2015-09-21 01:02:36 +08:00
    @cxshun 补充一点:就算放了 .idea ,也不会对非 IDEA 用户造成障碍。
    kifile
        16
    kifile  
    OP
       2015-09-21 08:01:55 +08:00
    @headwindx 目前其实我并没有过多的去干涉数据获取这一块,因为我觉得我写的只是一个架子,每个人的实际场景不一样,所以需要你自己去继承 DataFetcher 的接口,目前从 Android 本地数据库获取数据我这边提供了一个通过 ContentProvider 拿取数据的 CursorFetcher 类。
    waylife
        17
    waylife  
       2015-09-21 14:51:58 +08:00
    .idea 大部分项目都不会放,一般 AS 直接有 gradle 即可。
    gaotongfei
        18
    gaotongfei  
       2015-09-22 09:37:37 +08:00 via iPad
    @MASAILA 求 repo 地址
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2498 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:24 PVG 12:24 LAX 20:24 JFK 23:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86