我的Android学习笔记

  • 自定义Application

    1. 创建MyApplication,继承自Application
    2. 在AndriodManifest.xml中的Application标签中增加android:name=".MyApplication"属性
  • 引入aar包

    1. 将aar包,拷贝到工程的app/libs目录下
    2. 在app目录下的build.gradle文件中添加配置
    android {
        repositories {
            flatDir {
                dirs 'libs'
            }
        }
    }
    dependencies {
        implementation(name: 'xxxx', ext: 'aar')
    }
    
  • 设置可支持的平台类型

    1. build.gradle的android项中加入以下设置
    defaultConfig {
        ndk {
            abiFilters 'armeabi','armeabi-v7a','arm64-v8a','x86','x86_64'
        }
    }
    
    1. abiFilters中包含哪个平台类型,即可支持该平台
  • adb

    1. adb工具位于andriod sdk中的platform-tools目录,将此目录设置到PATH环境变量中,可在命令行中直接使用
    2. adb device可列出当前连接的Android设备
    3. adb shell命令可以进入设备的shell环境中
  • android:label

    1. application和activity中都可以设置label
    2. application中设置的label名即为应用程序在桌面显示的名称
    3. activity中如果没有设置label,则默认使用application的label,设置了则使用自己的
    4. 主activity中如果设置了label,则应用程序名使用该label
  • 布局

    1. 每个控件都可设置android:layout_widthandroid:layout_height属性,值为wrap_content表示根据内容变动大小,match_parent表示匹配父布局的大小
    2. android:text属性设置的是小写,运行后显示大写,增加android:textAllCaps="false"属性即可正常
  • VideoView
    Android中播放视频最简单的方式就是使用VideoView

    1. activity中增加一个VideoView项
    
    
    1. 使用setVideoURI设置要播放的URL,调用start开始播放
    VideoView videoView = (VideoView)findViewById(R.id.videoView);
    videoView.setVideoURI(Uri.parse("http://xxx.xxx.xx/x.mp4"));
    videoView.start();
    
    1. AndroidManifest.xml中增加网络权限
    
    
    1. 开始播放后会发现VideoView会根据视频的分辨率自动调整view的大小,原因是VideoView的onMeasure方法中做了根据视频分辨率改变view大小的操作。如果想使用设置的大小,需要自定义一个类,继承自VideoView,然后重写它的onMeasure方法
    public class MyVideoView extends VideoView {
    
        public MyVideoView(Context context) {
            super(context);
        }
    
        public MyVideoView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public MyVideoView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
    
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int width = getDefaultSize(0, widthMeasureSpec);
            int height = getDefaultSize(0, heightMeasureSpec);
            setMeasuredDimension(width, height);
        }
    }
    
    1. 以上设置后,将activity中的VideoView改为自定义的View,大小就会按照设定的大小显示,但是视频会被拉伸填充到整个View,无法保持原有的宽高比。
    • 一般想要的显示模式都是先设置好要显示的位置和大小,当视频宽高比和设置的不一致时,在显示区域上下或者左右填充黑边。这种情况需要将VideoView添加都一个ViewGroup中去,ViewGroup设置到需要的大小和位置,背景设置为黑色。VideoView添加到ViewGroup中,layout_gravity属性设置为centerlayout_widthlayout_height属性设置为match_parent,如下
    
        
    
    
  • Toast

Toast.makeText(this, "test", Toast.LENGTH_SHORT).show();
  • networkSecurityConfig
    Android 9.0开始,默认将不能使用http进行网络请求;如果确实需要使用http,则需要设置networkSecurityConfig.
    1. 在res目录中创建xml目录
    2. 在xml目录中创建一个xml文件,命名可以任意,如network_security_config.xml,内容如下:
    
    
        
    
    
    1. 在AndroidManifest.xml中加入networkSecurityConfig的配置
    
    

你可能感兴趣的:(我的Android学习笔记)