Looper
2016-05-25 18:11:25 0 举报
Looper是一个强大的视频编辑工具,专为创意人士设计。它提供了一套完整的剪辑、特效和音频处理功能,让您能够轻松地将您的创意想法变为现实。Looper的用户界面简洁直观,无论您是初学者还是专业人士,都能快速上手。它的高级剪辑功能包括多轨道时间线、实时预览、智能剪辑等,让您能够精确控制每一个细节。此外,Looper还提供了大量的特效和过渡效果,让您的视频更具动感和吸引力。它的音频处理功能也非常强大,包括噪音消除、音量控制、音效添加等,让您的视频声音更加清晰动听。总的来说,Looper是一款非常实用的视频编辑工具,无论您是制作短片、广告还是音乐视频,都能帮助您轻松完成任务。
作者其他创作
大纲/内容
jni
MessageQueue
next
被使用的时候创建looper
prepare
newLooper 初始化设置的fd
android_os_MessageQueue.cpp
NativeMessageQueue
//内部类
for
set
android_os_MessageQueue_nativeInit
Handler
android_os_MessageQueue.h
sp<Looper> mLooper
mMessageQueue->getLooper()
MessageQueue
enqueueMessage
pollInner
Message.obtain().what
LooperCallback
//内部类 handleEvent
Looper
myLooper
msg.target
NativeMessageQueue
pollOnce
pushResponse
NativeMessageQueue//内部类
其他JNI 文件中创建
true
ThreadLocal<Looper>
response.request.callback-handleEvent
Message.java
new
msg.target = this;//handler本身
android_os_MessageQueue_getMessageQueue
MessageHandler
//内部类 handleMessage
system/core/include/utils/Looper.h
构造函数中创建looper
queue msg
what
epoll_create
handleEvent
MessageQueue.java
wakeFds[0]
public void dispatchMessage(Message msg) { if (msg.callback != null) {//有runnable handleCallback(msg); } else { if (mCallback != null) {// Callback接口 if (mCallback.handleMessage(msg)) { return; } } //常见 handleMessage(msg); } }
what,0
Looper.cpp
wake
read
msg
Looper
//内部类 sendMessage
nativeWake
Looper()
sendMessageDelayed
sendMessageAtTime
get
Handler.java
mLooper = Looper.myLooper();mQueue = mLooper.mQueue;
loop
nativeInitpollOnce
pollAll
//谁调用的没找到
Looper.java
//创建队列和线程
SystemClock.uptimeMillis() + delayMillis
addFb方式的
awoken//被唤醒
write
mLooper = new Looper(false);
sendEmptyMessageDelayed
getForThread
sendEmptyMessage
0 条评论
下一页