├── .gitignore ├── README.md ├── build.gradle ├── example_activity_lifecycle ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── activity_lifecycle │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── activity_lifecycle │ │ │ ├── MainActivity.kt │ │ │ ├── OneActivity.kt │ │ │ └── TwoActivity.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_base.xml │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── example │ └── activity_lifecycle │ └── ExampleUnitTest.kt ├── example_activity_lifecycle_export ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── activity_lifecycle_export │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── activity_lifecycle_export │ │ │ └── MainActivity.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── example │ └── activity_lifecycle_export │ └── ExampleUnitTest.kt ├── example_chart ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── chart │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── chart │ │ │ ├── FortuneView.java │ │ │ └── MainActivity.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── example │ └── chart │ └── ExampleUnitTest.java ├── example_custom_views ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── simple │ │ └── example_custom_views │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── me │ │ │ └── simple │ │ │ └── example_custom_views │ │ │ ├── BaseActivity.kt │ │ │ ├── MainActivity.kt │ │ │ ├── canvas │ │ │ └── CanvasActivity.kt │ │ │ ├── constructor │ │ │ └── measure │ │ │ └── MeasureActivity.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_canvas.xml │ │ ├── activity_constructor.xml │ │ ├── activity_main.xml │ │ └── activity_measure.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── me │ └── simple │ └── example_custom_views │ └── ExampleUnitTest.kt ├── example_databinding ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── databinding │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── databinding │ │ │ ├── DataBindingActivity.java │ │ │ ├── DataBindingAdapter.java │ │ │ ├── DataBindingFragment.java │ │ │ ├── DataBindingViewHolder.java │ │ │ └── MainActivity.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ └── item_layot.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── example │ └── databinding │ └── ExampleUnitTest.kt ├── example_ffmpeg ├── .gitignore ├── CMakeLists.txt ├── CMakeLists1.txt ├── build.gradle ├── build_android.sh ├── import_soure.txt ├── libs │ └── armeabi-v7a │ │ ├── libavcodec.so │ │ ├── libavdevice.so │ │ ├── libavfilter.so │ │ ├── libavformat.so │ │ ├── libavresample.so │ │ ├── libavutil.so │ │ ├── libswresample.so │ │ ├── libswscale.so │ │ └── libyuv.so ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── demo │ │ └── simple │ │ └── example_ffmpeg │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── cpp │ │ ├── ffmpeg_utils.cpp │ │ └── include │ │ │ ├── cmdutils.c │ │ │ ├── cmdutils.h │ │ │ ├── config.h │ │ │ ├── ffmpeg.c │ │ │ ├── ffmpeg.h │ │ │ ├── ffmpeg_filter.c │ │ │ ├── ffmpeg_hw.c │ │ │ ├── ffmpeg_opt.c │ │ │ ├── libavcodec │ │ │ ├── ac3_parser.h │ │ │ ├── adts_parser.h │ │ │ ├── avcodec.h │ │ │ ├── avdct.h │ │ │ ├── avfft.h │ │ │ ├── bsf.h │ │ │ ├── codec.h │ │ │ ├── codec_desc.h │ │ │ ├── codec_id.h │ │ │ ├── codec_par.h │ │ │ ├── d3d11va.h │ │ │ ├── dirac.h │ │ │ ├── dv_profile.h │ │ │ ├── dxva2.h │ │ │ ├── jni.h │ │ │ ├── mathops.h │ │ │ ├── mediacodec.h │ │ │ ├── packet.h │ │ │ ├── qsv.h │ │ │ ├── vaapi.h │ │ │ ├── vdpau.h │ │ │ ├── version.h │ │ │ ├── videotoolbox.h │ │ │ ├── vorbis_parser.h │ │ │ └── xvmc.h │ │ │ ├── libavdevice │ │ │ ├── avdevice.h │ │ │ └── version.h │ │ │ ├── libavfilter │ │ │ ├── avfilter.h │ │ │ ├── buffersink.h │ │ │ ├── buffersrc.h │ │ │ └── version.h │ │ │ ├── libavformat │ │ │ ├── avformat.h │ │ │ ├── avio.h │ │ │ └── version.h │ │ │ ├── libavresample │ │ │ ├── avresample.h │ │ │ └── version.h │ │ │ ├── libavutil │ │ │ ├── adler32.h │ │ │ ├── aes.h │ │ │ ├── aes_ctr.h │ │ │ ├── attributes.h │ │ │ ├── audio_fifo.h │ │ │ ├── avassert.h │ │ │ ├── avconfig.h │ │ │ ├── avstring.h │ │ │ ├── avutil.h │ │ │ ├── base64.h │ │ │ ├── blowfish.h │ │ │ ├── bprint.h │ │ │ ├── bswap.h │ │ │ ├── buffer.h │ │ │ ├── camellia.h │ │ │ ├── cast5.h │ │ │ ├── channel_layout.h │ │ │ ├── common.h │ │ │ ├── cpu.h │ │ │ ├── crc.h │ │ │ ├── des.h │ │ │ ├── dict.h │ │ │ ├── display.h │ │ │ ├── dovi_meta.h │ │ │ ├── downmix_info.h │ │ │ ├── encryption_info.h │ │ │ ├── error.h │ │ │ ├── eval.h │ │ │ ├── ffversion.h │ │ │ ├── fifo.h │ │ │ ├── file.h │ │ │ ├── frame.h │ │ │ ├── hash.h │ │ │ ├── hdr_dynamic_metadata.h │ │ │ ├── hmac.h │ │ │ ├── hwcontext.h │ │ │ ├── hwcontext_cuda.h │ │ │ ├── hwcontext_d3d11va.h │ │ │ ├── hwcontext_drm.h │ │ │ ├── hwcontext_dxva2.h │ │ │ ├── hwcontext_mediacodec.h │ │ │ ├── hwcontext_opencl.h │ │ │ ├── hwcontext_qsv.h │ │ │ ├── hwcontext_vaapi.h │ │ │ ├── hwcontext_vdpau.h │ │ │ ├── hwcontext_videotoolbox.h │ │ │ ├── hwcontext_vulkan.h │ │ │ ├── imgutils.h │ │ │ ├── intfloat.h │ │ │ ├── intreadwrite.h │ │ │ ├── lfg.h │ │ │ ├── log.h │ │ │ ├── lzo.h │ │ │ ├── macros.h │ │ │ ├── mastering_display_metadata.h │ │ │ ├── mathematics.h │ │ │ ├── md5.h │ │ │ ├── mem.h │ │ │ ├── motion_vector.h │ │ │ ├── murmur3.h │ │ │ ├── opt.h │ │ │ ├── parseutils.h │ │ │ ├── pixdesc.h │ │ │ ├── pixelutils.h │ │ │ ├── pixfmt.h │ │ │ ├── random_seed.h │ │ │ ├── rational.h │ │ │ ├── rc4.h │ │ │ ├── replaygain.h │ │ │ ├── reverse.h │ │ │ ├── ripemd.h │ │ │ ├── samplefmt.h │ │ │ ├── sha.h │ │ │ ├── sha512.h │ │ │ ├── spherical.h │ │ │ ├── stereo3d.h │ │ │ ├── tea.h │ │ │ ├── thread.h │ │ │ ├── threadmessage.h │ │ │ ├── time.h │ │ │ ├── timecode.h │ │ │ ├── timestamp.h │ │ │ ├── tree.h │ │ │ ├── twofish.h │ │ │ ├── tx.h │ │ │ ├── version.h │ │ │ ├── video_enc_params.h │ │ │ └── xtea.h │ │ │ ├── libswresample │ │ │ ├── swresample.h │ │ │ └── version.h │ │ │ ├── libswscale │ │ │ ├── swscale.h │ │ │ └── version.h │ │ │ ├── libyuv.h │ │ │ └── libyuv │ │ │ ├── basic_types.h │ │ │ ├── compare.h │ │ │ ├── compare_row.h │ │ │ ├── convert.h │ │ │ ├── convert_argb.h │ │ │ ├── convert_from.h │ │ │ ├── convert_from_argb.h │ │ │ ├── cpu_id.h │ │ │ ├── macros_msa.h │ │ │ ├── mjpeg_decoder.h │ │ │ ├── planar_functions.h │ │ │ ├── rotate.h │ │ │ ├── rotate_argb.h │ │ │ ├── rotate_row.h │ │ │ ├── row.h │ │ │ ├── scale.h │ │ │ ├── scale_argb.h │ │ │ ├── scale_row.h │ │ │ ├── version.h │ │ │ └── video_common.h │ ├── java │ │ └── demo │ │ │ └── simple │ │ │ └── example_ffmpeg │ │ │ └── MainActivity.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── demo │ └── simple │ └── example_ffmpeg │ └── ExampleUnitTest.java ├── example_handler ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── demo │ │ └── simple │ │ └── example_handler │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── demo │ │ │ └── simple │ │ │ └── example_handler │ │ │ └── MainActivity.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── demo │ └── simple │ └── example_handler │ └── ExampleUnitTest.kt ├── example_image_browser ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── image_browser │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── image_browser │ │ │ ├── BaseVpAdapter.java │ │ │ ├── ImageBrowser.kt │ │ │ ├── ImageBrowserActivity.kt │ │ │ ├── MainActivity.kt │ │ │ └── SquareImageView.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── and1.png │ │ ├── and2.jpeg │ │ ├── and3.jpeg │ │ ├── and4.jpeg │ │ ├── ic_launcher_background.xml │ │ └── iu1.jpeg │ │ ├── layout │ │ ├── activity_image_browser.xml │ │ ├── activity_main.xml │ │ ├── item_browser_image.xml │ │ └── item_image.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── example │ └── image_browser │ └── ExampleUnitTest.kt ├── example_image_swiper ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── simple │ │ └── example_image_swiper │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── simple │ │ │ └── example_image_swiper │ │ │ └── MainActivity.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── simple │ └── example_image_swiper │ └── ExampleUnitTest.java ├── example_item_decoration ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── simple │ │ └── itemdecoration_demo │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── simple │ │ │ └── itemdecoration_demo │ │ │ ├── ItemDecoration1.java │ │ │ ├── ItemDecoration2.java │ │ │ └── MainActivity.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ └── item_cell.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── simple │ └── itemdecoration_demo │ └── ExampleUnitTest.java ├── example_keyboard_new_api ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── demo │ │ └── simple │ │ └── example_keyboard_new_api │ │ └── MainActivity.kt │ └── res │ ├── drawable-v24 │ └── ic_launcher_foreground.xml │ ├── drawable │ └── ic_launcher_background.xml │ ├── layout │ └── activity_main.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── values-night │ └── themes.xml │ └── values │ ├── colors.xml │ ├── strings.xml │ └── themes.xml ├── example_layout_manager ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── layout_manager │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── layout_manager │ │ │ ├── AvatarLinearLayoutManager.kt │ │ │ ├── CircleTextView.kt │ │ │ ├── CustomLinearLayoutManager.kt │ │ │ ├── CustomLinearLayoutManager2.kt │ │ │ ├── LogLinearLayoutManager.kt │ │ │ └── MainActivity.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── item_avatar_layout.xml │ │ └── item_layout.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── example │ └── layout_manager │ └── ExampleUnitTest.kt ├── example_lint ├── .gitignore ├── build.gradle ├── lint.xml ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── simple │ │ └── example_lint │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── simple │ │ │ └── example_lint │ │ │ └── MainActivity.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── simple │ └── example_lint │ └── ExampleUnitTest.java ├── example_lottie ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── simple │ │ └── example_lottie │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ ├── Source Han Sans CN.ttf │ │ ├── data.json │ │ ├── img_0.png │ │ ├── img_1.png │ │ ├── img_10.png │ │ ├── img_11.png │ │ ├── img_12.png │ │ ├── img_13.png │ │ ├── img_14.png │ │ ├── img_15.png │ │ ├── img_16.png │ │ ├── img_17.png │ │ ├── img_18.png │ │ ├── img_19.png │ │ ├── img_2.png │ │ ├── img_20.png │ │ ├── img_3.png │ │ ├── img_4.png │ │ ├── img_5.png │ │ ├── img_6.png │ │ ├── img_7.png │ │ ├── img_8.png │ │ └── img_9.png │ ├── java │ │ └── me │ │ │ └── simple │ │ │ └── example_lottie │ │ │ └── MainActivity.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── me │ └── simple │ └── example_lottie │ └── ExampleUnitTest.java ├── example_motion_layout ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── demo │ │ └── simple │ │ └── example_motion_layout │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── demo │ │ │ └── simple │ │ │ └── example_motion_layout │ │ │ └── MainActivity.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ └── activity_main_scene.xml │ └── test │ └── java │ └── demo │ └── simple │ └── example_motion_layout │ └── ExampleUnitTest.kt ├── example_navigation ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── navigation │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── navigation │ │ │ ├── FourFragment.kt │ │ │ ├── MainActivity.kt │ │ │ ├── NavActivity.kt │ │ │ ├── OneFragment.kt │ │ │ ├── ThreeFragment.kt │ │ │ └── TwoFragment.kt │ └── res │ │ ├── anim │ │ ├── anim_enter.xml │ │ └── anim_exit.xml │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── activity_nav.xml │ │ ├── fragment_layout.xml │ │ ├── fragment_one.xml │ │ ├── fragment_three.xml │ │ └── fragment_two.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── navigation │ │ └── main.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── example │ └── navigation │ └── ExampleUnitTest.kt ├── example_ndk_cmake ├── .gitignore ├── CMakeLists.txt ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── simple │ │ └── example_ndk_cmake │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── me │ │ │ └── simple │ │ │ └── example_ndk_cmake │ │ │ ├── MainActivity.java │ │ │ └── Test.java │ ├── jni │ │ ├── android_log.h │ │ └── hello_jni.c │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── me │ └── simple │ └── example_ndk_cmake │ └── ExampleUnitTest.java ├── example_simplify_selector ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── simple │ │ └── example_simplify_selector │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── simple │ │ │ └── example_simplify_selector │ │ │ └── MainActivity.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── ic_launcher_background.xml │ │ ├── sp_checked.xml │ │ ├── sp_normal.xml │ │ ├── sr_default.xml │ │ └── sr_simplify.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── simple │ └── example_simplify_selector │ └── ExampleUnitTest.kt ├── exmaple_stackview ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── simple │ │ └── stackview │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── simple │ │ │ └── stackview │ │ │ ├── MainActivity.java │ │ │ └── StackView.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── simple │ └── stackview │ └── ExampleUnitTest.java ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches/build_file_checksums.ser 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea 9 | /.idea 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AndroidExamples 2 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | ext.kotlin_version = '1.3.50' 5 | 6 | 7 | repositories { 8 | google() 9 | jcenter() 10 | } 11 | dependencies { 12 | classpath 'com.android.tools.build:gradle:3.5.0' 13 | 14 | // NOTE: Do not place your application dependencies here; they belong 15 | // in the individual module build.gradle files 16 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 17 | classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-alpha01" 18 | } 19 | } 20 | 21 | allprojects { 22 | repositories { 23 | google() 24 | jcenter() 25 | maven { url "https://jitpack.io" } 26 | } 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /example_activity_lifecycle/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /example_activity_lifecycle/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /example_activity_lifecycle/src/androidTest/java/com/example/activity_lifecycle/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.activity_lifecycle 2 | 3 | import androidx.test.InstrumentationRegistry 4 | import androidx.test.runner.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getTargetContext() 22 | assertEquals("com.example.activity_lifecycle", appContext.packageName) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 18 | 19 | -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | example_activity_lifecycle 3 | 4 | -------------------------------------------------------------------------------- /example_activity_lifecycle/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /example_activity_lifecycle/src/test/java/com/example/activity_lifecycle/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.activity_lifecycle 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /example_activity_lifecycle_export/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /example_activity_lifecycle_export/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/androidTest/java/com/example/activity_lifecycle_export/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.activity_lifecycle_export 2 | 3 | import androidx.test.InstrumentationRegistry 4 | import androidx.test.runner.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getTargetContext() 22 | assertEquals("com.example.activity_lifecycle_export", appContext.packageName) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle_export/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle_export/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle_export/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle_export/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle_export/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle_export/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle_export/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle_export/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle_export/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_activity_lifecycle_export/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | example_activity_lifecycle_export 3 | 4 | -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /example_activity_lifecycle_export/src/test/java/com/example/activity_lifecycle_export/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.activity_lifecycle_export 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /example_chart/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /example_chart/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /example_chart/src/androidTest/java/com/example/chart/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.example.chart; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.InstrumentationRegistry; 6 | import androidx.test.runner.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getTargetContext(); 24 | 25 | assertEquals("com.example.chart", appContext.getPackageName()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /example_chart/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /example_chart/src/main/java/com/example/chart/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.chart; 2 | 3 | import androidx.appcompat.app.AppCompatActivity; 4 | 5 | import android.os.Bundle; 6 | 7 | public class MainActivity extends AppCompatActivity { 8 | 9 | @Override 10 | protected void onCreate(Bundle savedInstanceState) { 11 | super.onCreate(savedInstanceState); 12 | setContentView(R.layout.activity_main); 13 | } 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /example_chart/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_chart/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_chart/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_chart/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_chart/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_chart/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_chart/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_chart/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_chart/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_chart/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_chart/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_chart/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_chart/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /example_chart/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | example_chart 3 | 4 | -------------------------------------------------------------------------------- /example_chart/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /example_chart/src/test/java/com/example/chart/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.example.chart; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /example_custom_views/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /example_custom_views/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /example_custom_views/src/androidTest/java/me/simple/example_custom_views/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package me.simple.example_custom_views 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("me.simple.example_custom_views", appContext.packageName) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /example_custom_views/src/main/java/me/simple/example_custom_views/BaseActivity.kt: -------------------------------------------------------------------------------- 1 | package me.simple.example_custom_views 2 | 3 | import android.content.Intent 4 | import androidx.appcompat.app.AppCompatActivity 5 | 6 | open class BaseActivity : AppCompatActivity() { 7 | 8 | protected fun navTo(clazz: Class){ 9 | val intent = Intent(this,clazz) 10 | startActivity(intent) 11 | } 12 | } -------------------------------------------------------------------------------- /example_custom_views/src/main/java/me/simple/example_custom_views/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package me.simple.example_custom_views 2 | 3 | import androidx.appcompat.app.AppCompatActivity 4 | import android.os.Bundle 5 | import android.view.View 6 | import me.simple.example_custom_views.constructor.ConstructorActivity 7 | import me.simple.example_custom_views.measure.MeasureActivity 8 | 9 | class MainActivity : BaseActivity() { 10 | 11 | override fun onCreate(savedInstanceState: Bundle?) { 12 | super.onCreate(savedInstanceState) 13 | setContentView(R.layout.activity_main) 14 | } 15 | 16 | fun constructor(view: View) { 17 | navTo(ConstructorActivity::class.java) 18 | } 19 | 20 | fun measure(view: View) { 21 | navTo(MeasureActivity::class.java) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /example_custom_views/src/main/java/me/simple/example_custom_views/canvas/CanvasActivity.kt: -------------------------------------------------------------------------------- 1 | package me.simple.example_custom_views.canvas 2 | 3 | import android.os.Bundle 4 | import me.simple.example_custom_views.BaseActivity 5 | import me.simple.example_custom_views.R 6 | 7 | class CanvasActivity : BaseActivity() { 8 | 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | super.onCreate(savedInstanceState) 11 | setContentView(R.layout.activity_canvas) 12 | } 13 | } -------------------------------------------------------------------------------- /example_custom_views/src/main/java/me/simple/example_custom_views/constructor/ConstructorActivity.kt: -------------------------------------------------------------------------------- 1 | package me.simple.example_custom_views.constructor 2 | 3 | import android.os.Bundle 4 | import me.simple.example_custom_views.BaseActivity 5 | import me.simple.example_custom_views.R 6 | 7 | class ConstructorActivity : BaseActivity() { 8 | 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | super.onCreate(savedInstanceState) 11 | setContentView(R.layout.activity_constructor) 12 | 13 | 14 | } 15 | } -------------------------------------------------------------------------------- /example_custom_views/src/main/java/me/simple/example_custom_views/constructor/CustomButton.java: -------------------------------------------------------------------------------- 1 | package me.simple.example_custom_views.constructor; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.view.View; 6 | import android.widget.Button; 7 | 8 | import androidx.appcompat.widget.AppCompatButton; 9 | 10 | public class CustomButton extends View { 11 | 12 | public CustomButton(Context context) { 13 | super(context); 14 | } 15 | 16 | public CustomButton(Context context, AttributeSet attrs) { 17 | super(context, attrs); 18 | } 19 | 20 | public CustomButton(Context context, AttributeSet attrs, int defStyleAttr) { 21 | super(context, attrs, defStyleAttr); 22 | 23 | } 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /example_custom_views/src/main/java/me/simple/example_custom_views/measure/MeasureActivity.kt: -------------------------------------------------------------------------------- 1 | package me.simple.example_custom_views.measure 2 | 3 | import android.os.Bundle 4 | import me.simple.example_custom_views.BaseActivity 5 | import me.simple.example_custom_views.R 6 | 7 | class MeasureActivity : BaseActivity() { 8 | 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | super.onCreate(savedInstanceState) 11 | setContentView(R.layout.activity_measure) 12 | } 13 | } -------------------------------------------------------------------------------- /example_custom_views/src/main/res/layout/activity_canvas.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /example_custom_views/src/main/res/layout/activity_constructor.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /example_custom_views/src/main/res/layout/activity_measure.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_custom_views/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_custom_views/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_custom_views/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_custom_views/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_custom_views/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_custom_views/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_custom_views/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_custom_views/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_custom_views/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_custom_views/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_custom_views/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_custom_views/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /example_custom_views/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /example_custom_views/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | example_custom_views 3 | 4 | -------------------------------------------------------------------------------- /example_custom_views/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /example_custom_views/src/test/java/me/simple/example_custom_views/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package me.simple.example_custom_views 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /example_databinding/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /example_databinding/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /example_databinding/src/androidTest/java/com/example/databinding/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.databinding 2 | 3 | import androidx.test.InstrumentationRegistry 4 | import androidx.test.runner.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getTargetContext() 22 | assertEquals("com.example.databinding", appContext.packageName) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /example_databinding/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /example_databinding/src/main/java/com/example/databinding/DataBindingActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.databinding; 2 | 3 | import androidx.databinding.DataBindingUtil; 4 | import androidx.databinding.ViewDataBinding; 5 | import android.os.Bundle; 6 | import androidx.annotation.Nullable; 7 | import androidx.appcompat.app.AppCompatActivity; 8 | 9 | public abstract class DataBindingActivity extends AppCompatActivity { 10 | 11 | protected abstract int getLayoutRes(); 12 | 13 | protected T binding; 14 | 15 | @Override 16 | protected void onCreate(@Nullable Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | 19 | binding = DataBindingUtil.setContentView(this, getLayoutRes()); 20 | } 21 | 22 | public T getBinding() { 23 | return binding; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /example_databinding/src/main/java/com/example/databinding/DataBindingViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.example.databinding; 2 | 3 | import androidx.databinding.DataBindingUtil; 4 | import androidx.databinding.ViewDataBinding; 5 | import androidx.annotation.NonNull; 6 | import androidx.recyclerview.widget.RecyclerView; 7 | import android.view.View; 8 | 9 | public class DataBindingViewHolder extends RecyclerView.ViewHolder { 10 | 11 | private T binding; 12 | 13 | public DataBindingViewHolder(@NonNull View itemView) { 14 | super(itemView); 15 | binding = DataBindingUtil.getBinding(itemView); 16 | } 17 | 18 | public T getBinding() { 19 | return binding; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /example_databinding/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_databinding/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_databinding/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_databinding/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_databinding/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_databinding/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_databinding/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_databinding/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_databinding/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_databinding/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_databinding/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_databinding/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_databinding/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /example_databinding/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | example_databing 3 | 4 | -------------------------------------------------------------------------------- /example_databinding/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /example_databinding/src/test/java/com/example/databinding/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.databinding 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /example_ffmpeg/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | .cxx -------------------------------------------------------------------------------- /example_ffmpeg/CMakeLists1.txt: -------------------------------------------------------------------------------- 1 | # 设置构建本机库文件所需的 CMake的最小版本 2 | cmake_minimum_required(VERSION 3.4.1) 3 | 4 | #添加头文件的搜索路径 5 | include_directories(src/main/cpp/include/) 6 | 7 | # 添加自己写的 C/C++源文件 8 | add_library(utils #so名称 9 | SHARED #动态库 10 | src/main/cpp/ffmpeg_utils.cpp 11 | ) 12 | 13 | # 添加外部的库(可以是动态库或静态库) 14 | set(LIBS_DIR ${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}) 15 | add_library( 16 | avutil 17 | SHARED 18 | IMPORTED) 19 | set_target_properties( 20 | avutil 21 | PROPERTIES IMPORTED_LOCATION 22 | ${LIBS_DIR}/libavutil.so) 23 | 24 | # 依赖 NDK中自带的log库 25 | find_library(log-lib log) 26 | 27 | # 链接库 28 | target_link_libraries( 29 | utils 30 | avutil 31 | ${log-lib}) -------------------------------------------------------------------------------- /example_ffmpeg/import_soure.txt: -------------------------------------------------------------------------------- 1 | cmdutils.c 2 | cmdutils.h 3 | config.h 4 | ffmpeg.c 5 | ffmpeg.h 6 | ffmpeg_filter.c 7 | ffmpeg_hw.c 8 | ffmpeg_opt.c 9 | 10 | // 11 | libavcodec/mathops.h 12 | libavformat/avformat.h 13 | libavresample/avresample.h 14 | /version.h 15 | libavutil/reverse.h 16 | /thread.h 17 | -------------------------------------------------------------------------------- /example_ffmpeg/libs/armeabi-v7a/libavcodec.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/libs/armeabi-v7a/libavcodec.so -------------------------------------------------------------------------------- /example_ffmpeg/libs/armeabi-v7a/libavdevice.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/libs/armeabi-v7a/libavdevice.so -------------------------------------------------------------------------------- /example_ffmpeg/libs/armeabi-v7a/libavfilter.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/libs/armeabi-v7a/libavfilter.so -------------------------------------------------------------------------------- /example_ffmpeg/libs/armeabi-v7a/libavformat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/libs/armeabi-v7a/libavformat.so -------------------------------------------------------------------------------- /example_ffmpeg/libs/armeabi-v7a/libavresample.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/libs/armeabi-v7a/libavresample.so -------------------------------------------------------------------------------- /example_ffmpeg/libs/armeabi-v7a/libavutil.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/libs/armeabi-v7a/libavutil.so -------------------------------------------------------------------------------- /example_ffmpeg/libs/armeabi-v7a/libswresample.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/libs/armeabi-v7a/libswresample.so -------------------------------------------------------------------------------- /example_ffmpeg/libs/armeabi-v7a/libswscale.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/libs/armeabi-v7a/libswscale.so -------------------------------------------------------------------------------- /example_ffmpeg/libs/armeabi-v7a/libyuv.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/libs/armeabi-v7a/libyuv.so -------------------------------------------------------------------------------- /example_ffmpeg/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /example_ffmpeg/src/main/cpp/include/libavutil/avconfig.h: -------------------------------------------------------------------------------- 1 | /* Generated by ffmpeg configure */ 2 | #ifndef AVUTIL_AVCONFIG_H 3 | #define AVUTIL_AVCONFIG_H 4 | #define AV_HAVE_BIGENDIAN 0 5 | #define AV_HAVE_FAST_UNALIGNED 1 6 | #endif /* AVUTIL_AVCONFIG_H */ 7 | -------------------------------------------------------------------------------- /example_ffmpeg/src/main/cpp/include/libavutil/ffversion.h: -------------------------------------------------------------------------------- 1 | /* Automatically generated by version.sh, do not manually edit! */ 2 | #ifndef AVUTIL_FFVERSION_H 3 | #define AVUTIL_FFVERSION_H 4 | #define FFMPEG_VERSION "4.3" 5 | #endif /* AVUTIL_FFVERSION_H */ 6 | -------------------------------------------------------------------------------- /example_ffmpeg/src/main/cpp/include/libyuv/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef INCLUDE_LIBYUV_VERSION_H_ 12 | #define INCLUDE_LIBYUV_VERSION_H_ 13 | 14 | #define LIBYUV_VERSION 1733 15 | 16 | #endif // INCLUDE_LIBYUV_VERSION_H_ 17 | -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/simplepeng/AndroidExamples/27ebed77251b96210153e69a90ed1599bbe0b491/example_ffmpeg/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #6200EE 4 | #3700B3 5 | #03DAC5 6 | -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | example_ffmpeg 3 | -------------------------------------------------------------------------------- /example_ffmpeg/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /example_ffmpeg/src/test/java/demo/simple/example_ffmpeg/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package demo.simple.example_ffmpeg; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /example_handler/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /example_handler/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /example_handler/src/androidTest/java/demo/simple/example_handler/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package demo.simple.example_handler 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("demo.simple.example_handler", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /example_handler/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /example_handler/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 |