1、使用友盟分享有的界面可以,有的一直提示QQ和QQ空间一直提示图片存储错误或没有存储权限,最后才发现失败的地方是因为使用了网络图片地址,而这个地址又用不了了。
2、Hijson格式化后台返回的json字符串,值为null时,自动去掉了,搞得有用的字段没写到。
3、enum一般用来定义常量
4、友盟QQ和空间分享收不到回调,需添加
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode,resultCode,data);
}
5、manifest中package和gradle中applicationID的区别
1、package主要用于指定类和资源文件存放的位置。
2、applicationID是应用的唯一标识符,多渠道打包是可以为不同渠道配置不同的applicationID的,但这样他们就不是同一个应用了,更新也无法直接覆盖安装了。
如果两个不一样时,第三方SDK需要我们的包名时,要提供的是applicationID,这才是应用标识符。
6、org.gradle.jvmargs = -Xmx1536m 是Gradle 的默认最大堆大小为 1536 MB,如果电脑很卡可以改小一点就像给studio分配内存一样。
7、在studio设置页面设置代理将会使所有项目都生效,在gradle.properties中设置代理将会用于整个项目(在studio设置中设置代理会覆盖gradle.properties中的设置),如果要单独为某个module设置代理就写在模块的gradle的android{里}
apply plugin: 'com.android.application'
android {
...
defaultConfig {
...
systemProp.http.proxyHost=proxy.company.com
systemProp.http.proxyPort=443
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.auth.ntlm.domain=domain
}
...
}
8、Google和jcenter下载过慢可以使用阿里的地址(https://maven.aliyun.com/mvn/view),按下面的形式,要什么库就引入
maven {url "http://maven.aliyun.com/nexus/content/groups/public/"}
也可以使用离线的配置,配置方法https://developer.android.google.cn/studio/intro/studio-config
9、project structure中可配置多渠道打包和为调试添加签名,多变种等
10、发送消息到通知栏,更多设置可参考https://blog.csdn.net/weixin_45468359/article/details/107069306
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//适配8.0及以上需要设置NotificationChannel,且NotificationChannel的id与Notification的channelId必须相同
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(channelId, "模拟验证码", NotificationManager.IMPORTANCE_HIGH);
notificationManager.createNotificationChannel(channel);
}
Notification notification = new NotificationCompat.Builder(this, channelId)
.setContentTitle("登录验证码")
.setContentText("登录验证码是" + stringBuilder.toString())
.setSmallIcon(R.mipmap.ic_launcher)
.build();
notificationManager.notify(1, notification);