Alias's blog

打印日志 #include "android/log.h" #ifndef _ANDROID_LOG_TAG_ #define _ANDROID_LOG_TAG_ #define DEBUG //定义了这个,才打印日志 #define TAG "ndk-jni" // 这个是自定义的LOG的标识 #ifdef DEBUG #defi...

发布 0 条评论

ConstraintSet ConstraintSet允许我们动态的修改ConstraintLayout中某些控件的约束,并在约束改变的时候,为我们添加上动画效果 官方文档:https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintSet...

发布 0 条评论

extern 与头文件 一、头文件 首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预编译时在 #include的地方展开一下,没别的意义了,其实头文件主要是给别人看的。 我做过一个实验,将头文件的后缀改成 xxx.txt,然后在引...

发布 0 条评论

子模块 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。在其他的博...

发布 0 条评论

实现 Material Design 抽屉式导航栏微件,我们也可以使用这个控件来做左右展开功能!!! 引入 dependencies { implementation "androidx.drawerlayout:drawerlayout:1.1.1" } 最新版本可以查看官方文档 基础使用 1、...

发布 0 条评论

启用Databinding android { dataBinding { enabled = true } } 修改布局文件 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/r...

发布 0 条评论

Binder连接池 原文链接Android开发艺术探索 上面我们介绍了不同的IPC方式,我们知道,不同的IPC方式有不同的特点和适用场景,当然这个问题会在2.6节进行介绍,在本节中要再次介绍一下ADIL,原因是AIDL是一种最常用的进程间通信方式...

发布 0 条评论

Activity#setContentView 当我们在Activity中使用setContentView的时候,其实非常简单的交给了Window去处理,在Android中,Window的子类只有一个PhoneWindow public void setContentView(@LayoutRes int layoutResID) { getWindow...

发布 0 条评论

最近偶然间看到一篇博客Android Scroller 滑动机制介绍了Android中ScrollView的滚动本质,并从源码级别进行了介绍,只能说大佬牛逼了,然后写一个demo来加强记忆咯 1、Scroll的方向傻傻乎乎分不清楚 如图所示,如果需要向右边滚动,参...

发布 0 条评论

方案一:使用主题文件 定义换肤资源 在values/下新建一个xml文件,比如theme_attrs.xml,然后定义换肤的资源类型 <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="them...

发布 0 条评论