【笔记记录】2020-09-22

【安卓】

1.[JNI] 方法格式:

extern "C"
JNIEXPORT jint 
JNICALL Java_com_jni_JniDemo_addTest(JNIEnv *env, jclass type, jint a, jint b) {
   return a + b;
}

 2.

【JNIEXPORT】
1. Windows 中如果需要生成动态库 , 并且需要将该动态库交给其它项目使用 , 需要在方法前加入特殊标识 , 才能在外部程序代码中 调用该 DLL 动态库中定义的方法。
2. Windows 平台需要将方法 返回值 之前加入 __declspec(dllexport) 标识。
3. Linux 平台需要将方法 返回值 之前加入 __attribute__((visibility (“default”))) 标识。

【JNICALL】
1. Windows 中 JNICALL 被定义为 __stdcall , __stdcall 是一种函数调用参数的约定 , 在 Windows 中调用函数时 , 该函数的参数是以 栈 的形式保存的 , 栈 中元素是后进先出的 , __stdcall 表示参数是`从右到左`压栈保存的。
2. Windows 中 __stdcall 用于 定义 函数入栈规则(从右到左)、堆栈清理规则 。
3. Linux 中 JNICALL 没有进行定义直接置空,在 Linux 中可以不用写 JNICALL 宏。

 3.[Android] SurfaceView

1. 继承SurfaceView,并实现 SurfaceHolder.Callback 接口,实现它的三个方法:surfaceCreated()、surfaceChanged()、surfaceDestroyed()
2. surfaceCreated(SurfaceHolder holder):Surface创建的时候调用,一般在该方法中启动绘图的线程,线程调用 SurfaceHolder 对象进行绘图。
3. surfaceChanged(SurfaceHolder holder, int format, int width,int height):Surface尺寸发生改变的时候调用,如横竖屏切换。
4. surfaceDestroyed(SurfaceHolder holder) :Surface被销毁的时候调用,如退出游戏画面,一般在该方法中停止绘图线程。
5. 在构造方法中调用 SurfaceView.getHolder().addCallback() 添加 SurfaceHolder.Callback 接口实例,上面的生命周期方法才会执行。
6. 在构造方法中可以保存 SurfaceHolder 对象,通过 SurfaceView.getHolder() 获得,也可以在上面的生命周期方法中获取此对象。
7. SurfaceHolder.lockCanvas 获取 Canvas 对象并锁定画布,然后调用 Canvas 绘图方法,SurfaceHolder.unlockCanvasAndPost 结束锁定画布,提交改变。

 4.[LeetCode] Z 字形变换

class Solution {
    public String convert(String s, int numRows) {
        if(numRows < 2) return s;
        List<StringBuilder> rows = new ArrayList<StringBuilder>();
        for(int i = 0; i < numRows; i++) rows.add(new StringBuilder());
        int i = 0, flag = -1;
        for(char c : s.toCharArray()) {
            rows.get(i).append(c);
            if(i == 0 || i == numRows -1) flag = - flag;
            i += flag;
        }
        StringBuilder res = new StringBuilder();
        for(StringBuilder row : rows) res.append(row);
        return res.toString();
    }
}

 5.[Android] RoateDrawable

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@mipmap/arrow1"
    android:fromDegrees="-230"
    android:toDegrees="50"
    android:pivotX="50%"
    android:pivotY="50%">
</rotate>

 6.jna

import com.sun.jna.Library;
import com.sun.jna.Native;
public class MainActivity extends AppCompatActivity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        int c = JNATest.INSTANCE.add(22, 33);  
        Log.e("ard", "JNA返回:" + c);
    }
    
    interface JNATest extends Library {
        JNATest INSTANCE = (JNATest) Native.loadLibrary("jnatest", JNATest.class);
        public int add(int a, int b);
    }
}

 7.[JVM] GC Roots

1. 虚拟机栈中引用的对象(主要是指栈帧中的本地变量)
2. 本地方法栈中 Native 方法引用的对象
3. 方法区中类静态属性引用的对象
4. 方法区中常量引用的对象

 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] MeasureSpec

【静态方法】
1. int getMode(int measureSpec)
2. int getSize(int measureSpec)

【笔记】
1. UNSPECIFIED:不对View大小做限制,如:ListView、ScrollView
2. EXACTLY:确切的大小,如:100dp 或者 march_parent
3. AT_MOST:大小不可超过某数值,如 wrap_content

9. java.lang.IllegalStateException : Only fullscreen opaque activities can request orientation

描述:java.lang.IllegalStateException : Only fullscreen opaque activities can request orientation

原因:android 8.0中只允许全屏非透明的activity配置强制屏幕方向。

10.[OpenGL] glEnableVertexAttribArray()

int nrAttributes;
glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &nrAttributes);
std::cout << "Maximum nr of vertex attributes supported: " << nrAttributes << std::endl;

11.[OpenGL] 坐标系统

* 局部空间(Local Space,或者称为物体空间(Object Space))
* 世界空间(World Space)
* 观察空间(View Space,或者称为视觉空间(Eye Space))
* 裁剪空间(Clip Space)
* 屏幕空间(Screen Space)

12.[Studio] 自定义折叠

1. 有两种自定义代码折叠风格:region、editor-fold。
2. 鼠标选择代码后,通过快捷键 Ctrl + Alt + T 打开对话框选择其中一种自定义折叠就能包裹代码。

13.RecyclerView + SnapHelper 实现 ViewPager

LinearLayoutManager manager = new LinearLayoutManager(getContext());
manager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(manager);
LinearSnapHelper snapHelper = new LinearSnapHelper();
snapHelper.attachToRecyclerView(mRecyclerView);

14.[Android] TransitionInflater:有LayoutInflater怎么就没有TransitionInflater?哈哈,把这个思想套进去mybatis,就是有了SQLInflater呢(将SQL2XML转为对象) 

15.[JetPack] Lifecycle

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getLifecycle().addObserver(new MyObserver());
        getLifecycle().addObserver(new My2Observer());
    }
}

16.DER存储格式:The standard ASN.1 encoding rules include: Basic Encoding Rules (BER)、Canonical Encoding Rules (CER)、Distinguished Encoding Rules (DER)、XML Encoding Rules (XER)、Packed Encoding Rules (PER)、Generic String Encoding Rules (GSER) 

 

【科学】

1.功率

【总结】
做功的速度或是利用能量的速度

【公式】
P = W/t = FV = UI

【笔记】
1. 功的定义式:W = F * S

1.[三角学] Cos函数

【简介】
在直角三角形中以锐角的某个数值角度为基准,邻边/斜边的值称为Cos函数的值。

【第一余弦定理】
第一余弦定理一般指射影定理(又称“欧几里德定理”),在△ABC中,设∠A,∠B,∠C的对边分别为a,b,c,则有:
a = bcosC + ccosB
b = ccosA + acosC
c = acosB + bcosA

【第二余弦定理】
余弦定理亦称第二余弦定理,关于三角形边角关系的重要定理之一:三角形任一边的平方等于其他两边平方和减去这两边与它们夹角的余弦的积的两倍。

 3.[声学] 简谐振动

【简介】
1.(Simple harmonic motion)(SHM)随时间按余弦(或正弦)规律的振动或运动。
2. 当某物体进行简谐运动时,物体所受的力跟位移成正比,并且力总是指向平衡位置。

【学习】
位移随时间形成如下数学形式的运动被称为简谐振动:https://zhuanlan.zhihu.com/p/71147507

【笔记】
任何一种周期性的运动,都可以分解成一系列简谐振动的合成,这称为傅里叶变换

4.在振动 y= Asin(wx+φ) 中,  |A|叫做振幅,  wx+φ叫做相位,φ叫做初相,2π/|w|叫做频率。

5.【量纲】

量纲(dimension)是指物理量的基本属性,目前有7个基本属性(长度、质量、时间、温度等等)。

【要点】
1. 物理量可分为基本量和导出量。
2. 对于基本量而言,其量纲为其自身。
3. 导出量是指其量纲可以表示为基本量量纲组合的物理量。

 

【英语】

1.[英语] ledges

【例句】
1.See those ledges along the road?

2.【岩脊】【N-COUNT】
like a wounded bird seeking refuge on a mountain ledge.
就像一只受伤的鸟在山的岩脊上寻找藏身处一样。

3.【窗台】【N-COUNT】
Dorothy had climbed onto the ledge outside his window.
多萝西已经爬到了他窗台外面。

2.[英语] slice

【例句】
1.【(切下的)薄片】
a slice of bread.
一片面包

Cut the meat into thin slices.
把肉切成薄片

potato slices.
土豆片

2.【份额】
Our firm is well placed to grab a large slice of the market.
我们公司处境有利,足以获得巨大的市场份额。

3.【部分】
local authorities control a large slice of public spending.
地方当局控制着公共支出的很大一部分。

4.【锅铲】
a fish slice.

3.[English] reproduce

【网络】
1.Birds reproduce by laying eggs.

2.I shall not try to reproduce the policemen's English.
我不会试图去模仿那个警察讲的英语。

【If you reproduce a picture, speech, or a piece of writing, you make a photograph or printed copy of it.】
1. We are grateful to you for permission to reproduce this article.
非常感谢您允许我们复印这篇文章。

4.[汉语] 墙高基下,虽得必失

《北史·序传·李僧伽》:“ 时郑子默有名于世,僧伽曰:‘行不适道,文胜其质,郭林宗所谓墙高基下,虽得必丧,此之徒也。”

5.あなたの紹介コード:RTHUG

6.現在のご契約容量はマイページよりご確認ください。

 

【其他】

1. [HomeBrew] 执行命令长时间停在 Updating Homebrew...:直接 Ctrl + c,然后稍等一会就会继续安装软件。

2.img标签中的alt属性有什么作用:SEO优化、代替图片显示内容值

3.$this、self、static、parent 这三个关键字分别代表什么

class Father
{
    public static function name()
    {
        echo "Father";
    }
    
    public static function callself()
    {
        self::name();  
    }
    
    public static function callstatic()
    {
        static::name(); 
    }
}

class Son extends Father
{
    public static function name()
    {
        echo "Son";
    }
}

Son::callself(); // Father
Son::callstatic(); // Son

 4.

2.下列程序的时间复杂度为()

```
for(i = 0; i < m; i++) 
    for(j = 0; j < t; j++) 
        c[i][j]=0;
for(i=0; i < m; i++)
    for(j=0; j < t; j++) 
        for(k=0; k < n; k++)
            c[i][j] = c[i][j] + a[i][k] * b[k][j];
```

A. O(m + n × t) 
B. O(m + n + t)  
C. O(m × n × t) 
D. O(m × t + n)

 

上一篇:【k8s】Endpoints


下一篇:Spring Boot Actuator:健康检查、审计、统计和监控