Android开发笔记

一、关于android 6.0之后的动态权限申请

判断是否是需要运行时权限的标记就是targetSDKVersion,当targetSDKVersion<23的时候,仅在安装时赋予权限,使用时将不被提醒,当targetSDKVersion≥23的时候才会使用新的运行时权限规则。

推荐一个github上关于动态权限申请的开源项目:

implementation 'com.yanzhenjie:permission:1.0.5'

二、EventBus使用

注解类

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface BindEventBus {
}

BaseActivity类

public abstract class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (this.getClass().isAnnotationPresent(BindEventBus.class)) {
            EventBus.getDefault().register(this);
        }
    }

    @Override
    protected void onStop() {
        super.onStop();
        EventBus.getDefault().unregister(this);
    }
}

其他Activity

@BindEventBus
public class AddEmployeeActivity extends BaseActivity {
...
}

需要注册EventBus的,就添加这个注解就可以了,不添加就是不需要注册,更加方便简洁。

三、android屏幕适配

为什么要适配我就不多赘述了,直接说解决方案

ScreenMatch
  1. ScreenMatch
    在Android studio中安装ScreenMatch插件,File -> Settings -> Plugin -> Browse Repositories -> 搜索screenMatch ->install.
  2. 添加dimens.xml
    在项目的默认 values 文件夹中需要一份 dimens.xml 文件,点击这里,复制过来即可
  3. 执行生成
    插件安装好后,在项目的任意目录或文件上右键,选择 ScreenMatch 选项,然后Select module选择app,点击OK。
  4. 根据设计图填写最小宽度基准值,并填写需要适配的设备最小宽度 dp 值
    打开默认生成的screenMatch.properties 文件,参数配置如下:
    base_dp = 375 最小宽度基准值
    match_dp = ... 需要适配的宽度
    ignore_dp = ... 忽略适配的宽度

具体可参考这篇文章

AutoSize
  1. 配置
    基于头条屏幕方案的AndroidAutoSize,使用方式,先在module下的build.gradle下添加依赖
 implementation 'me.jessyan:autosize:1.1.2'

然后在module的AndroidManifest权限菜单下添加基本设计图的尺寸,这里我们是使用360*630dp作为基本尺寸单位,这样配置工作就完成了


                
        
                   
                

头条的适配方案是选择高度或宽度两者之一为基准进行适配(姑且不管原理),在该库的AutoSizeConfig类的源码中我们可以看到isBaseOnWidth默认就是true,也就是说改库默认就是以宽度进行适配的

  1. 宽度适配,高度适配,取消适配
    框架默认是使用宽度适配的,因此我们不需要对Activity进行操作,而如果是HorizontalScrollView,宽度是不确定的,高度是确定的,就适合以高度为基准进行适配
    在HeightActivity中实现CustomAdapt接口,实现isBaseOnWidth方法,返回false表示不要以宽度为基本适配,然后在getSizeInDp方法中填写基准设计图高度的尺寸
class HeightActivity : AppCompatActivity() , CustomAdapt {

    //取消以宽度为基准进行适配
    override fun isBaseOnWidth(): Boolean {
        return false
    }

    //返回高度的单位尺寸
    override fun getSizeInDp(): Float {
        return 640f
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_height)
    }
}

我们如果想取消屏幕适配,就让Activity实现CancelAdapt接口。

具体查看这篇文章

四、多图选择器

implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.2.3'

github地址查看这里

五、android开源库

推荐一个Android开源库集合

六、android studio获取SHA1方法

查看这篇文章

七、集成芝麻信用授权

查看这篇文章
官方文档请查看这里

八、三方sdk

友盟分享,点击这里
极光推送,点击这里

九、SeekBar、ProgressBar、RatingBar

SeekBar,查看这里
ProgressBar,查看这里
RatingBar,查看这里

十、Retrofit

Retrofit2 Post请求添加Json类型参数,查看这里

持续更新...

你可能感兴趣的:(Android开发笔记)