6、版本控制

module->build.gradle->android中

compileSdkVersion 22
buildToolsVersion "22.0.1"
1、compileSdkVersion是SDK的版本,也就是API Level,例如API-19、API-20、API-21等。
2、buildToolsVersion是构建工具的版本,包括打包工具aapt、dx等。这个工具的目录位于_sdk_path/build-tools/XX.XX.XX。这个版本号一般是API Level.0.x。 例如API20对应的build-tool的版本就是20.0.0,在这之间可能有小版本,例如20.0.1等。
3、可以用高版本的build-tool去构建一个低版本的sdk工程,例如build-tool的版本为20,去构建一个sdk版本为18的

8、android系统版本对应关系

android_version

10、Android SDK 功能解析

SDK中比较重要的目录包括【build-tools】【platforms】【platform-tools】【tools】

【build-tools】里是不同版本(例如21.1.1)的build工具,这些工具包括了apt打包工具、dx.bat、aidl.exe等

【platform】是存放不同API-level版本SDK目录的地方

【platform-tools】是一些android平台相关的工具,adb、fastboot等

【tools】是指的安卓开发相关的工具,例如android.bat、ddms.bat(Dalvik debug Monitor Service)、draw9patch.bat等等

9、异步任务AsyncTask的doInBackground执行慢

NoticesManage.NoticesManageTask task = new NoticesManage.NoticesManageTask(baseHandler);
        task.execute(new String[]{NOTICES_MANAGE_LIST_NOTICES});

1.此种方式异步任务内部是在自己的线程池里面同步顺序执行,也就是说此时的异步是相对与ui线程的异步。所以有时候doInBackground执行的慢(慢到五六分中才执行)很正常了。

NoticesManage.NoticesManageTask task = new NoticesManage.NoticesManageTask(baseHandler);
        task.executeOnExecutor(Executors.newCachedThreadPool(), new String[]{NOTICES_MANAGE_LIST_NOTICES});

2.此方式异步任务新建一个线程池 线程在这里并发执行,解决了doInBackground执行慢的问题。

10、SharedPreferences.Editor的apply和commit方法区别

SharedPreferences.Editor的apply 和commit方法的区别:

1.apply没有返回值而commit返回boolean表明修改是否成功;

2.apply是将修改数据原子提交到内存,而后异步真正提交到硬盘,而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后操作,从而降低了效率。而apply只售原子的提交到内容,后面有调用apply的函数将会直接覆盖前面的内存数据,从一定程度上提高了很多效率。

3.apply方法不会提示任何失败的提示。

由于在一个进程中,SharedPreferences是单实例,一般不会出现并发冲突,如果对提交的结果不关心的话,建议使用apply,当然需要确保提交成功后且有后续操作的话,还是要用commit。

20、圆角图片

参考链接

30、AlertDialog.builder点击对话框外面和按返回键对话框不会消失

// 设置setCancelable属性
public void showNoProject() {
        Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setCancelable(false);
        builder.show();
    }

30、gif图片显示

参考链接
github地址

40、上下滚动广告条

参考链接

96、给ImageView添加点击效果

1)、新建selector.xml文件

2)、在需要的ImageView视图里面添加如下属性 android:clickable="true" 或在activity里面给ImageView添加点击事件也行,然后在ImageView的src或者background添加上面的selector.xml文件既可。

97、控件显示到上层

  1. 控件是覆盖显示的,后加进来的控件覆盖前面的控件。
  2. view.bringToFront() 可以将布局在下层的控件放到上层。

98、设置EditText光标在左上方

当EditText高度设置高了之后,光标会在垂直居中。
此时设置android:gravity="top"就可以实现,默认为center

99、ERROR: Could not determine artifacts for androidx.test.ext:junit:1.1.0: Skipped due to earlier error

多编译几次即可

Q.E.D.


行走在天地间自由的灵魂