弱弱的问一句做 Android 系统开发的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
thinkloki
V2EX    Android

弱弱的问一句做 Android 系统开发的

  •  1
     
  •   thinkloki 2017 年 2 月 22 日 13738 次点击
    这是一个创建于 3249 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做系统做 ROM 的遇到那些隐藏的 API 怎么改?特别是像系统设置这种东西,感觉改起来好难呀。编译的时候编译不过去,还有 @hide 这种方法必须用到的需要怎么做。

    22 条回复    2017-02-26 09:45:24 +08:00
    scys
        1
    scys  
       2017 年 2 月 22 日
    我只是用过 MTK 范畴的 ROM ,@hide 是不公开的 API ,你直接改代码就行。
    如果你修改了 @hide ,就需要提供 SDK 出去给别人编译 APK 用。
    thinkloki
        2
    thinkloki  
    OP
       2017 年 2 月 22 日
    @scys 我就是自己要做一个系统的设置,里面用到了好多调用 @hide 的方法,每次都编译 sdk 去掉 @hide 这样去用,但有时候还是有一些东西没法用到,现在是想搭个环境能用源代码里面的所有方法,这样开发起来简单很多。
    scys
        3
    scys  
       2017 年 2 月 22 日
    你将你代码放在系统内一起编译,就可以用到 hide 的 API
    thinkloki
        4
    thinkloki  
    OP
       2017 年 2 月 22 日
    @scys 嗯 这种我知道的,就是开发的时候特别不方便,导包什么的这种,都是一个窗口开源码一个窗口开 IDE ,也不知道自己写对了没,也没办法验证。

    还有大佬我问个问题。我把 @hide 给删掉之后,自己编译 sdk 老是抱 make: *** [out/target/common/docs/api-stubs-timestamp] Error 45 这个错误,您遇到过没有。
    scys
        5
    scys  
       2017 年 2 月 22 日
    make update-api
    需要更新 API 的列表
    Vindroid
        6
    Vindroid  
       2017 年 2 月 22 日
    改这种,我向来是凭直觉改,导入的包各种红叉,没法很好的判断改没改对,改一点编译一点看有没有问题
    thinkloki
        7
    thinkloki  
    OP
       2017 年 2 月 22 日
    @scys 我前两天 make update-api 也保这个错误 make: *** [out/target/common/docs/api-stubs-timestamp] Error 45 。
    thinkloki
        8
    thinkloki  
    OP
       2017 年 2 月 22 日
    @Vindroid 我也差不多,感觉好麻烦。不知道那些个 ROM 大厂怎么做的。
    LancerXin
        9
    LancerXin  
       2017 年 2 月 22 日
    大厂的 rom,系统内部大多数 app 一般都是用 ide 编译出来的,他们会修改 sdk 添加自己的 android.jar,这里面方法没有 hide 的,而且包含所有 internal 的类和方法.
    这样做的好处很明显,就是只需要招应用开发的人才就可以了.
    这种做法类似 aosp 和 gms 的关系,gms 是预编译好的.

    其实你自己也可以编译自己的 sdk,方法我不多说了,楼上很多都说了.
    scys
        10
    scys  
       2017 年 2 月 22 日
    根据你回复的 Error 45 你只有慢慢细查或者上网查,没头绪
    thinkloki
        11
    thinkloki  
    OP
       2017 年 2 月 22 日
    @LancerXin 我现在就是自己在编译 SDK ,现在要用到 internal 里面的方法,也是没头绪。
    thinkloki
        12
    thinkloki  
    OP
       2017 年 2 月 22 日
    @scys 我在复现一遍 等会把详细的 log 贴出来。
    thinkloki
        13
    thinkloki  
    OP
       2017 年 2 月 22 日
    @scys 原来 5.1 得源码编译 sdk 没问题,换了个版本 4.4.4 就出现这个问题,就是去掉了 @hide 。不去掉 @hide 是没问题的。
    scys
        14
    scys  
       2017 年 2 月 22 日
    4.4.4 -_- 又是另外一个编译方法,你还是不要去掉 @hide ,修改一个公开的 API ,提供相同功能
    thinkloki
        15
    thinkloki  
    OP
       2017 年 2 月 22 日
    @scys 4.4.4 的命令还跟别的版本命令不一样?
    . build/envsetup.sh
    lunch sdk-eng
    make sdk-j4
    上面这个命令试过,去掉 @hide 报 Error 45

    . build/envsetup.sh
    lunch sdk-eng
    make PRODUCT-sdk-sdk
    这个也试过,一样的问题。
    jokerman
        16
    jokerman  
       2017 年 2 月 22 日
    反射
    thinkloki
        17
    thinkloki  
    OP
       2017 年 2 月 22 日
    ![]( ) @scys 就是这个就是我把 forget 上面的 @hide 去掉了然后就报这个错误。还有如果我用到 internal 类里面的方法,比如说 Phone ,我直接源码编译能用到吗?
    thinkloki
        18
    thinkloki  
    OP
       2017 年 2 月 22 日
    @jokerman 反射如果代码多的话很不方便,代码少还行。
    scys
        19
    scys  
       2017 年 2 月 22 日
    刚好今天也遇到,不过你那个仅仅因为你 @hide 里面也用了 @hide 的属性罢了。
    thinkloki
        20
    thinkloki  
    OP
       2017 年 2 月 22 日
    @scys ![]( ) 是这个 ActionListener 呢吗?把这个得 @hide 也去掉?
    thinkloki
        21
    thinkloki  
    OP
       2017 年 2 月 23 日
    已经解决了确实是 @hide 去掉的时候,相关联的参数里面也有 @hide 得问题导致的,包括 @LINK 这种也会产生异常。简单粗暴把所有的 @符号相关的东西删完就行了。
    coolypf
        22
    coolypf  
       2017 年 2 月 26 日
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3808 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 10:34 PVG 18:34 LAX 02:34 JFK 05:34
    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