如果您在编写HTML5应用,需要在JS代码中访问Java中的函数,则您会用到WebView的addJavascriptInterface()函数。因为安全问题,在Android4.2中(如果应用的android:targetSdkVersion数值为17+)JS只能访问带有 @JavascriptInterface注解的Java函数。
之前,任何Public的函数都可以在JS代码中访问,而Java对象继承关系会导致很多Public的函数都可以在JS中访问,其中一个重要的函数就是 getClass()。然后JS可以通过反射来访问其他一些内容。通过引入 @JavascriptInterface注解,则在JS中只能访问 @JavascriptInterface注解的函数。这样就可以增强安全性。
如果您的应用android:targetSdkVersion数值为17或者大于17记得添加 @JavascriptInterface 注解。

js中调用 java中的clickedAgreement方法
CourseInfo.clickedAgreement(paramData.i,paramData.j,1);

据华为开发者官网最新消息,编译工具方舟编译器已经对外发布。
方舟编译器是基于 GCC 开发的交叉编译器套件,它包括了C、C++、Fortran 的前端,也包括了这些语言的库(如 libstdc++、libgcc 等)。HCC 运行在 X86 linux 架构服务器上,生成的二进制运行在 Aarch64 架构服务器上。

安装前准备

  1) 环境要求

  方舟编译器支持如下 64 位操作系统。

  SUSE12sp4 及以上版本。

  ubuntu16.04 及以上版本。

  其他 glibc 版本在 2.22 及以上的 Linux 发行版。

  2) 获取软件包

  安装方舟编译器需要获取如表2-1 所示的开源软件包。

GCC 7.3.0 编译器源码包  https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz

  Binutils 2.31.1 汇编器、链接器等二进制工具集源码包  https://ftp.gnu.org/gnu/binutils/binutils-2.31.1.tar.gz

  Glibc 2.29 GNU libc 库源码包 https://git.linaro.org/toolchain/glibc.git/snapshot/glibc-2.29.tar.gz

  Mpc 1.1.0 复数运算库  https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz

  GNU MPFR 4.0.2 多精度浮点计算库  https://www.mpfr.org/mpfr-current/mpfr-4.0.2.tar.gz

  isl 0.21 集和线性约束范围内整数点关系的操作库  http://isl.gforge.inria.fr/isl-0.21.tar.gz

安装 HCC 编译器

  1) 操作步骤

  您可以使用 HCC tar 包将 HCC 安装到当前用户权限下的任何位置,而不会影响其他编译器的使用。

  a) 介绍操作入口,例如用 XX 帐号登录 XX 环境。

  b) 登陆 HCC 下载地址下载压缩包

  hcc_arm64le.tar.gz

  c) 将 tar 包拷贝至您想要安装的目录。

  命令脚本如下所示。

  cp hcc_arm64le.tar.gz /path/to/your/dir

  d) 解压缩软件包。

  命令脚本如下所示。

  tar zxvf hcc_arm64le.tar.gz

  e) 设置环境变量。

  设置环境变量命令脚本如下所示。

  export PATH=/path/to/your/dir/hcc_arm64le/bin:$PATH

  HCC 编译器提供的编译工具在=/path/to/your/dir/hcc_arm64le/bin 目录下。

  2) 安装后检查

  HCC 编译器安装完成后,可以执行 aarch64-linux-gnu-gcc -v 命令查询 HCC 版本。

  软件下载

  源码下载:立即下载

  据华为官方方面介绍,方舟编译器是首家完全替代语言虚拟机的静态编译器,完全不需要解释器。兼顾 Java 开发效率和C语言运行效率的编译器。相比现有的编译机制:

  1. 方舟编译器是一种静态的编译方式,而现有的安卓系统,运行一个应用程序首先启动虚拟机,然后读入应用程序代码,逐条解释执行。会占用较多的处理资源,影响程序执行的效率。当然,也有包括 AOT 或 JIT 等提前或运行时的编译技术,把部分程序转换成机器码直接在 CPU 上执行。但是,仍旧无法做到 100% 做到摆脱虚拟机的执行,这也是当前安卓阵营不如 IOS 阵营的关键。

  2. 华为方舟编译器的静态编译方式可将语言里的动态特性直接翻译成机器码,手机安装应用程序后可全速运行程序,彻底消除虚拟机的弊病,带来效率上的极大提升。

  3. 方舟编译器是在开发环境部署的编译器,而现有编译过程,主要发生在手机上,带来额外的资源消耗。

  目前方舟编译器针对通用 ARM 芯片架构进行编译优化,未来将通过软硬件协同设计,将麒麟芯片的能力发挥到极致。同时方舟编译器支持 Java 标准用法,三方应用可直接进行编译,不需要修改代码。但如果希望获得更加好的性能或内存方面的提升,则可以通过调整代码结构,与方舟编译器配合优化来实现。

decimal类型,小数位数是三位,某一条数据的值是0.1, 查询出来的结果是0.100,这样显示在页面中不太好看,希望看到是0.3,则可以使用如下方法:
BigDecimal a=new BigDecimal("0.1000");
System.out.println(a.stripTrailingZeros().toPlainString());

08812-5j5v7cqllsc.png

a=new BigDecimal("1.0");
System.out.println(a.stripTrailingZeros().toPlainString()); ===1

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系238611804@139.com。我们会在24小时内进行删除。