【安卓】

1.程序A能否接收到程序B的广播:使用全局的 BroadCastRecevier 能进行跨进程通信, LocalBroadCastRecevier 只限于本进程的广播间通信

#### 【例子】
> 注册本地广播
```
// 实例化一个广播接收器
mBroadcastReceiver = new BroadcastReceiver () {
    @Override
    public void onReceive(Context context, Intent intent) {
        //  TODO 接收到广播时的逻辑
        Log.d (TAG, "onReceive: " + intent.getStringExtra ("name"));
    }
};

// 实例化IntentFilter
IntentFilter intentFilter = new IntentFilter ();
intentFilter.addAction ("com.github.xjx.test");

 // 注册本地广播
LocalBroadcastManager.getInstance (this).registerReceiver (mBroadcastReceiver, intentFilter);
```

#### 【例子】
> 发送本地广播
```
Intent intent = new Intent ();
intent.setAction ("com.github.xjx.test");
intent.putExtra ("name", "Jerry");
LocalBroadcastManager.getInstance (MainActivity.this).sendBroadcast (intent);
```

2.MediaMuxer

构造:
1. MediaMuxer(String path, int format):
path:输出文件的全路径名称,format:输出文件的格式,当前支持MP4和3GP格式,使用 MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4

方法:
1. int addTrack(@NonNull MediaFormat format)
添加通道,我们更多的是使用 MediaCodec.getOutpurFormat()或 MediaExtractor.getTrackFormat(int index)来获取MediaFormat,也可以自己创建。

2. start()
当我们添加完所有音视频轨道之后,需要调用这个方法告诉Muxer,我要开始写入数据了。

3. writeSampleData(int trackIndex, ByteBuffer byteBuf, MediaCodec.BufferInfo bufferInfo):
用于向Muxer写入编码后的音视频数据,trackIndex是我们addTrack()的时候返回的ID,byteBuf便是要写入的数据,而bufferInfo是跟这一帧byteBuf相关的信息,包括时间戳、数据长度和数据在ByteBuffer中的位移。

4. stop()
与start()相对应,用于停止写入数据,并生成文件。

5. release()
释放Muxer资源

3.TabLayout

例子:
uiTab.addTab(uiTab.newTab().setText("已租借"))
uiTab.addTab(uiTab.newTab().setText("待还书"))
uiTab.addTab(uiTab.newTab().setText("已还书"))
uiTab.addTab(uiTab.newTab().setText("已转售"))
uiTab.addOnTabSelectedListener(......)

问题:
1.如何代码触发选择 TabLayout 的某个Tab选择事件(模拟点击)?
Tablayout.getTabAt(position).select();

4.[JVM] 运行时数据区

【区域】
1. 程序计数器
2. 虚拟机栈
3. 本地方法栈
4. 堆
5. 方法区

【程序计数器】
JVM中的程序计数器可以看做是当前线程所执行的字节码的行号指示器,每个线程都有一个程序计数器,这是JVM规范中唯一一个没有规定会导致OutOfMemory(内存溢出,下文简称OOM)的区域。


【虚拟机栈】
1. 每个Java方法在执行时,会创建一个“栈帧(stack frame)”,栈帧的结构分为“局部变量表、操作数栈、动态链接、方法出口”几个部分。
2. 方法调用时,创建栈帧并压入虚拟机栈,方法执行完毕,栈帧出栈并被销毁。
3. 虚拟机栈是线程隔离的,即每个线程都有自己独立的虚拟机栈。

5.[Kotlin] 字面常量

1. 123L
2. 0x0F
3. 0b00000001

笔记:
1.可以使用下划线分开数字

6.ViewAnimationUtils:创建揭露动画

#### 静态方法
```
Animator createCircularReveal (
    View view, 
    int centerX,                         
    int centerY,                         
    float startRadius,                   
    float endRadius
)
```

#### 代码
```
val mCircularReveal: Animator = ViewAnimationUtils.createCircularReveal(
    ucRoot, centerX, centerY, 0f, ucRoot.measuredHeight.toFloat()
)
mCircularReveal.setDuration(1500).start()
```

7.[Frame] GroupedRecyclerViewAdapter

#### 简介
GroupedRecyclerViewAdapter可以很方便的实现RecyclerView的分组显示,
并且每个组都可以包含组头、组尾和子项;可以方便实现多种Type类型的列表,
可以实现如QQ联系人的列表一样的列表展开收起功能,还可以实现头部悬浮吸顶功能等。 #### 重要 ★★★★★

8.[Kotlin] 数字类型

【简介】
1. Double:64bit
2. Float:32bit
3. Long:64bit
4. Int:32bit
5. Short:16bit
6. Byte:8bit

【关联】
1. 位运算只能在Int 和 Long类型上进行。
2. Int 和 Long 可以 toByte() 转为Byte类型。

9.如何模拟按下关机键

前提:进入su命令

命令:input keyevent [--longpress]

代码:
input keyevent 26

笔记:
1. 26也可换KEYCODE_POWER
2. input keyevent 会把 down 和 up 一起发送,可加入 --longpress 来模拟长按事件。

相关:
1. sendevent device type code value:adb shell sendevent/dev/input/event2 1 116 1
2. adb shell monkey:可以模拟发送事件

10.连接对应设备的控制台:adb -s emulatorName shell

 

 【后端】

1./etc/init.d:目录中存放的是一系列系统服务的管理(启动与停止)脚本。

2.crontab:定时任务,每个用户有一个文件对应定时任务。

 

【前端】

1.[Node] 模块概念:Node视一个JS文件为一个模块,每一个模块执行的时候都会注入一个module对象,模块可以通过访问module.exports对象从而导出数据或函数。 

 

【其他】

1.SVN提交本地文件到服务器:svn commit 路径/文件 -m “msg”

2.SVN查看文件状态:svn status 路径

3.[Vim] 批量缩进:行号1,行号2>,一个>表示缩进一次,两个则缩进两次。

4.[SVN] 查看本地与服务器的差异:右键 -> TortoiseSVN -> Check for modifications -> 右击某个文件 -> Compare with base

5.pem存储格式:一种 base64 编码的存储格式,可以是证书、私钥、证书签名请求。

 

【英语】

Whenever the user clicks or touches any UI element like, a button, it is desirable to provide some kind of visual confirmation, 
so that the user knows that their touch or click was successful. Responsive interaction encourages deeper **exploration** of
an app by creating timely, logical, and delightful screen **reactions** to the user input.

- exploration:/ˌekspləˈreɪʃn/,n. 探测
- reactions:/riˈækʃn/,n. 反应

 

版权声明:本文为nicojerry原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/nicojerry/p/13042095.html