【安卓】
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."))