【笔记记录】2021-08-31

【安卓】

1.[Android] FragmentTransaction :通过此类对 Fragment 进行添加、删除、隐藏、显示、出场动画等操作。

2.[Android] 自定义:PathLayoutManager:

* 重写 generateDefaultLayoutParams() 方法,这个是必须的,我们直接返回一个长宽都为 WRAP_CONTENT 的 RecyclerView.LayoutParams 就行;
* 重写 onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) 方法,在这里面布局 ItemView;
* 重写 `canScrollHorizontally()` 和 `canScrollVertically()` 方法,使它支持水平或垂直滚动;
* 重写 `scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state)` 和 `scrollHorizontallyBy(int dx, RecyclerView.Recycler recycler, RecyclerView.State state)`,并在这里处理滚动工作

3.[Java] cglib/cglib: 一个强大的、高性能、高质量的 Code 生成类库,它可以在运行期拦截方法调用、实现Java接口和继承Java类。

4.[Android] PackageManager : Android系统为开发者提供的系统服务管理类中的一个,主要用于帮助开发者管理应用程序安装包,通过它可以有效的获取设备上安装的Apk或者未安装的Apk文件的一些数据。

 5.

【简介】
jobject 是一个别名,实际类型是 _jobject*,对应 Java 的 Object。

【定义】
class _jobject {};
typedef _jobject* jobject;

【例子】
JNIEXPORT void JNICALL Java_com_jni_demo_JNIDemo_sayHello (JNIEnv * env, jobject obj){  
    cout<<"Hello World"<<endl;  
}

6.[Android] WebViewClient:

【简介】
1. WebViewClient:辅助 WebView 处理各种事件、通知
2. WebChromeClient:辅助 WebView 处理 Javascript 的对话框、网站图标、网站标题、加载进度等

7.[Android] 适配方案

它的原理是根据屏幕的宽度或高度动态调整每个设备的 density (每 dp 占当前设备屏幕多少像素),通过修改 density 值的方式动态调整 1dp对应多少像素,这样就可以解决所有的适配问题(又称今日头条适配方案)。

 8.[XML] <data>

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
​
    <data>
        <variable name="title" type="java.lang.String" />
    </data>
​
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{title}" />
    </LinearLayout>
</layout>

9.[Android] ViewPager2一屏多页效果:ViewPager2的一屏多页实现跟ViewPager并无多大差别,需要把ViewPager2父容器的clipChildren设置为false,同时ViewPager2的clipChildren也设置为false,并且将ViewPager2的offscreenPageLimit 设置为2以上,以及为ViewPager2设置margin即可。

10.[OpenGL] 顶点插值

在光栅化阶段,primitive(一般为三角形)被转化成一系列的 fragment(或者称为像素),这些 fragment 接下来要做片元操作,此时每个 fragment 都有位置、颜色、纹理坐标这些属性信息,这些属性信息通过顶点属性用插值方法得到的。

11.[LeetCode] 寻找两个有序数组的中位数:使用归并的方式,合并两个有序数组

12.[Git] 查看所有配置:

1.git config -l
2.git config --list

 

【其他】

1.[Linux] shutdown命令 :shutdown ([-t time] | [-h time] | [-c] ) [message]

2.[Mac] 关机命令:命令的主体主要是 shutdown,h/r/s 参数分别代表关机/重启/睡眠,然后在后面加上执行时间(yymmddhhmm)即可。

3.[Vim] 批量缩进:行号1, 行号2>

4.[Nginx] 默认目录:/etc/nginx

5.[Linux] chown:修改文件的属主或属组。

6.[HTML] IFC : 块级元素中仅包含内联级别元素(inline、inline-block)

7.[Linux] rm命令:删除文件和文件夹。

8.[Apache] 默认错误日志目录:

【Debian】
位置:/var/log/apache2/error.log
修改:打开 /etc/apache2/apache2.conf,然后查找以 ErrorLog 开头的行,该行指定了自定义的 Apache 错误日志文件的位置。

【Red Hat】
位置:/var/log/httpd/error_log
修改:打开 /etc/httpd/conf/httpd.conf,然后查找以 ErrorLog 开头的行,该行指定了自定义的 Apache 错误日志文件的位置。

 9.

##### 简介

Node是一个提供了文件读写、网络请求等API功能的软件,并且可以通过 JavaScript 调用这些功能。

##### 重点

1. 引入模块:我们可以使用 **require** 指令来载入 Node.js 模块。
2. 运行模式:Node.js 是单进程单线程应用程序,使用事件驱动模型。
3. 模块定义:一个 JS 文件被作为一个模块,可以被 **require** 引入。

10.[Apache] 虚拟主机配置

Listen 82

# localhost访问是PHP目录
<VirtualHost *:82>
    DocumentRoot "F:\PHP"
    ServerName localhost
  <Directory "F:\PHP">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
  </Directory>
</VirtualHost>

# 127.0.0.1访问是WWW目录
<VirtualHost *:82>
    DocumentRoot "F:\WWW"
    ServerName 127.0.0.1
  <Directory "F:\WWW">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
  </Directory>
</VirtualHost>

11.[PHP] EOF字符串

【例子】
$var = <<<EOF
任意内容
EOF;

【联想】
1. Kotlin的多行字符串
2. Python多行字符串

【Kotlin】
val text = """
多行字符串
多行字符串
"""


【Python】
str = """My Name is Pankaj.
I am the owner of JournalDev.com
JournalDev is a very popular website in Developers community."""

str = ("My Name is Pankaj. "
     "I am the owner of JournalDev.com and "
     "JournalDev is a very popular website in Developers community.")

str = "My Name is Pankaj. " \
    "I am the owner of JournalDev.com and " \
    "JournalDev is a very popular website in Developers community."

str = ' '.join(("My Name is Pankaj. I am the owner of",
              "JournalDev.com and",
              "JournalDev is a very popular website",
              "in Developers community."))

 

上一篇:为何触发此事件?


下一篇:本地可以正常打开hangfire页面,发布后报401