继承LinearLayout后onDraw方法不调用
init{
//添加这两句代码即可,在onDraw代码中会检测dividerDrawable属性,如果为空就不会调用onDraw
dividerDrawable = ColorDrawable()
showDividers = SHOW_DIVIDER_BEGINNING
}
kotlin中如果方法参数是接口,kotlin中使用lambda表达式,如果lambda表达式内部没有代码,通过编译会变成一个静态变量,多次调用对象一致
Thread {
Log.d("", "")
}.start()
//编译后
(new Thread((Runnable)null.INSTANCE)).start();
sqlite3查看数据库的时候不显示列名,使用.headers on .mode column
使用依赖注入 加 JvmField
注解可以不生成get,set方法,并改为public
想要查看源码
将gradle-wrapper.properties文件夹下的gradle下载地址改为all
之前集成Arouter一直失败的原因是没有在gradle文件中加入
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
Arouter的注解处理器,需要在各个模块中显示的引入,不能通过基类包导入
遇到一个使用Arouter无法跳转的问题,原来是主项目没有引入子项目,所以没办法跳转
模块化隐式跳转
对于Service需要进行隐式跳转,需要设置报名,这里的包名不能是所在模块的包名,必须是住模块的包名
intent.action = "remote.aidl.service"
//巨坑,此处需要填写主工程的包名,而不是子模块的包名
intent.setPackage("com.td.moduleproject")
bindService(intent, ConnectCallBack(), Context.BIND_AUTO_CREATE)
<application>
<service android:name="com.td.remoteservice.AidlService"
android:process=":processB"
android:exported="true">
<intent-filter>
<action android:name="remote.aidl.service"/>
</intent-filter>
</service>
</application>
报名需要设置com.td.moduleproject,主项目工程的包名,设置模块包名com.td.remoteservice是找不到这个service的
AIDL文件不生成
AIDL文件只能用纯英文字母,不能有数字或者符号, 需要在生成的文件中添加方法,原始文件是不会生成.java文件的,点击同步生成文件,不行就多点几次,或者clean一下,或者make一下,不行重启AndroidStudio
ViewBind获取不到ViewID
在多模块工程中,如果两个模块中的layout文件名相同,那么ViewBind会获取不到ID 报错信息Missing required view with ID
gradler 7.0+导入AAR包
1.在项目中创建一个根目录创建一个文件夹,将AAR包方进去 2.在新文件夹中创建build.gradle文件 3.build.gradle文件内容为
configurations.maybeCreate("default")
artifacts.add("default", file('BaiduLBS_Android.aar'))
文件结构如下图
4.修改setting文件夹,将创建的文件夹当做模块导入项目
5.修改项目主模块的build.gradle
6.同步一下项目,完成
gradler 下载慢
将项目中的文件下载链接替换为国内的
https://mirrors.cloud.tencent.com/gradle/gradle-7.4-bin.zip