撸码经验总结

1. 尽量将界面的公用控件或者布局抽取出来作为自定义的控件,并对外申明需要的方法(这些方法可以在需要的时候加),方便管理,减轻activity的压力。

2.新建module作为项目依赖时,在子module中不要涉及布局等,只写封装对象、逻辑和操作等内容,界面相关的写到主module中。

3.关于命名:尽量写含义明确的英文单词。成员变量加 m(member)、静态变量加s(static)。

4. 新建module后,如果无法引用R文件,可以执行一下操作:打开 file/settings 界面,依次选择 Build,Execution/compiler ,在该界面的右边选择勾选

    第一个选项(compile independent modules in....),然后clear、build项目。

5. 在一次使用EventBus时,始终无法导包,最后发现项目文件:bubuild.gradle 里面依赖:

dependencies{} 里面是: implementation fileTree(include :[ ' *.jar ' ], dir: 'libs' )

而不是  compile  fileTree(include :[ ' *.jar ' ], dir: 'libs' )。

原理还不知道。

6. 当程序中的“BuildConfig”无法导包时(可能不影响编译和程序的启动),可以选择菜单栏的Build:选择Make Module '你的mudule名字' 就可以在build(gradle生成的编译文件)中生成BuileConfig类,就可以在程序中导包了。

7.在实际开发中,有时候会接受一些来源的数据包,但是注意一点:c/c++ 的byte取值范围和java是不一样的:

java中byte的取值范围是 -128到127,最高位用来表示正负

而c/c++中byte的取值范围是0到255,

比如同样的十进制数:100,转换成java或c/c++的byte,都是1100110,

但是在java中,使用java的getBytes()得到的却是负数(最高位是1,表示负数)

而c#的getBytes()方法得到的却是正数。

如果在java想要得到和c#等值的数据的话,

可以对android接收到的byte数据做&0xFF处理。

8. 有时候我们换电脑导项目会发现as提示我们这样的错误,导致程序无法正常运行:

Error:This Gradle plugin requires Studio 3.0 minimum

可能的解决方法是:在项目的gradle.properties文件末尾加上代码:

android.injected.build.model.only.versioned = 3

该方法亲测有效,但不是唯一的方法。

你可能感兴趣的:(撸码经验总结)