![cover](https://img-blog.csdnimg.cn/8595e18e46d1424ba4bb85de538d7494.png)
Hippy项目源码分析(六)
2021SC@SDUSC首篇文章已说明我的分工:Core全部内容include\core\napi\jcs\js_native_jsc_helper.h#pragma once#include <JavaScriptCore/JavaScriptCore.h>#include <string>#include "core/napi/js_native_api_types.h
2021SC@SDUSC
首篇文章已说明我的分工:Core全部内容
include\core\napi\jcs\js_native_jsc_helper.h
#pragma once
#include <JavaScriptCore/JavaScriptCore.h>
#include <string>
#include "core/napi/js_native_api_types.h"
#include "core/napi/jsc/js_native_api_jsc.h"
namespace hippy {
namespace napi {
std::string JsStrToUTF8(JSStringRef str);
} // namespace napi
} // namespace hippy
补充:
Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以将html放在网络中,软件一打开就会访问网络获取到最新的界面。缺点是会受到网络信号的影响,从而导致访问速度慢。
1.用WebView来显示HTML代码
2.允许WebView执行JavaScript
webView.getSettings().setJavaScriptEnabled(true);
3.获取到HTML文件,也可从网络中获取
webView.loadUrl("file:///android_asset/index.html"); //HTML文件存放在assets文件夹中
4.添加一个对象, 让JS可以访问该对象的方法, 该对象中也可以调用JS中的方法
webView.addJavascriptInterface(new Contact(), "contact");
include\core\napi\jcs\js_native_turbo_jsc.h
#include <core/napi/js_native_turbo.h>
#include <core/napi/jsc/js_native_api_jsc.h>
namespace hippy {
namespace napi {
class ObjcTurboEnv : public TurboEnv {
public:
ObjcTurboEnv(std::shared_ptr<Ctx> ctx);
~ObjcTurboEnv();
std::shared_ptr<CtxValue> CreateObject(const std::shared_ptr<HostObject> &hostObject) override;
std::shared_ptr<CtxValue> CreateFunction( const std::shared_ptr<CtxValue> &name,
int paramCount,
HostFunctionType func) override;
};
} // namespace napi
} // namespace hippy
补充:Turbo编码方式的特性:
- 该编码方式具有类随机码的特性,同时具有足够的结构信息,使得能够使用一种高效的迭代译码方法进行译码。这种编码尤其在中等误比特率和长分组长度情况下,具有优异的性能;
- 另外,Turbo编码还有一个特点是由两个或更多的简单分量码组成,分量码按照某种规则排列后,与一个伪随机交织器结合。由于存在不止一个分量码,因此可以以迭代的形式对每个分量码采用简单的软输入软输出(SISO)译码器,其中一个译码器的的软输出结果直接作为另一个译码器的输入,反之亦然,直到得到最终的译码估计。
- Turbo码也有两个缺点:
一是较长的编码时延,主要是由于长分组长度和为达到接近信道容量的性能所需的多次译码迭代所造成.
更多推荐
所有评论(0)