native 订阅
native是一个计算机函数,一个Native Method就是一个Java调用非Java代码的接口。方法的实现由非Java语言实现,比如C或C++。 展开全文
native是一个计算机函数,一个Native Method就是一个Java调用非Java代码的接口。方法的实现由非Java语言实现,比如C或C++。
信息
外文名
native
类    型
计算机术语
中文名
原生方法
软    件
Java
nativeNative Method(原生方法)
"A native method is a Java method whose implementation is provided by non-java code." [1]  在定义一个native method时,并不提供实现体(有些像定义一个Java Interface),因为其实现体是由非Java语言在外面实现的。下面给了一个示例:这些方法的声明描述了一些非Java代码在这些Java代码里看起来像什么样子(view).标识符native可以与所有其它的java标识符连用,但是abstract除外。这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这些方法无实现体。native与其它java标识符连用时,其意义同非Native Method并无差别,比如native static表明这个方法可以在不产生类的实例时直接调用,这非常方便,比如当你想用一个native method去调用一个C的类库时。上面的第三个方法用到了native synchronized,JVM在进入这个方法的实现体之前会执行同步锁机制(就像java的多线程。)一个native method方法可以返回任何java类型,包括非基本类型,而且同样可以进行异常控制。这些方法的实现体可以制一个异常并且将其抛出,这一点与java的方法非常相似。当一个native method接收到一些非基本类型时如Object或一个整型数组时,这个方法可以访问这些非基本型的内部,但是这将使这个native方法依赖于你所访问的java类的实现。有一点要牢牢记住:我们可以在一个native method的本地实现中访问所有的java特性,但是这要依赖于你所访问的java特性的实现,而且这样做远远不如在java语言中使用那些特性方便和容易。native method的存在并不会对其他类调用这些本地方法产生任何影响,实际上调用这些方法的其他类甚至不知道它所调用的是一个本地方法。JVM将控制调用本地方法的所有细节。需要注意当我们将一个本地方法声明为final的情况。用java实现的方法体在被编译时可能会因为内联而产生效率上的提升。但是一个native final方法是否也能获得这样的好处却是值得怀疑的,但是这只是一个代码优化方面的问题,对功能实现没有影响。如果一个含有本地方法的类被继承,子类会继承这个本地方法并且可以用java语言重写这个方法(这个似乎看起来有些奇怪),同样的如果一个本地方法被final标识,它被继承后不能被重写。本地方法非常有用,因为它有效地扩充了JVM。事实上,我们所写的Java代码已经用到了本地方法,在Sun的Java的并发(多线程)的机制实现中,许多与操作系统的接触点都用到了本地方法,这使得java程序能够超越Java运行时的界限。有了本地方法,Java程序可以做任何应用层次的任务。
收起全文
精华内容
参与话题
问答
  • useState 使用也和react一样,其他也一样就不多举例 import React, { Component, ...} from 'react-native'; export default function Flex () { const [count, setCount] = useState(0) const addCount = () =>

    useState 使用也和react一样,其他也一样就不多举例

    import React, { Component, useState } from 'react';
    import {
      View,
      Text,
      StyleSheet,
      Button
    } from 'react-native';
    
    export default function Flex () {
      const [count, setCount] = useState(0)
      const addCount = () => {
        let newCount = count
        setCount(newCount += 1)
      }
      handelClick = () => {
        alert('dianji')
      }
      return (
        <View style={styles.container}>
          <Text style={[styles.text, { backgroundColor: 'red', textAlign: 'center' }]}>{count}</Text>
          <Button title="增加" onPress={addCount}></Button>
          <Button title="点击" onPress={this.handelClick} color="#841584"></Button>
            <ActivityIndicator
              size="large"
              animating={true}
              color="#841584"
            ></ActivityIndicator>
            Image source={require('./img/dask.gif')} style={{ width: 300, height: 300 }}></Image>
            <Image source={{ uri: 'https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1590671406&di=d041102044a03c687bdbee360807c96a&src=http://cdn.duitang.com/uploads/item/201410/04/20141004070754_NFWSQ.jpeg' }}
              style={{ width: 100, height: 100 }}
            ></Image>
            <SafeAreaView style={{ flex: 1, backgroundColor: '#fff' }}>
            <View style={{ flex: 1 }}>
              <Text>Hello World!</Text>
            </View>
          </SafeAreaView>
          <WebView
            source={{ uri: 'https://www.baidu.com' }}
            style={{ marginTop: 20 }}
          />
        </View>
      )
    }
    
    const styles = StyleSheet.create({
      container: {
        width: 100,
        height: 100,
        margin: 10,
        backgroundColor: 'gray'
      },
      text: {
        fontSize: 20, margin: 20
      }
    })
    
    展开全文
  • 在相应的路径下执行命令行:react-native init 项目名 (名称不可使用连接符等特殊字符,命名可以参考APP应用名称 比如 FaceBook) react-native --v //查看版本 react-native init demo --version 0.48.0//安装指定...

    构建项目

    在相应的路径下执行命令行:react-native init 项目名 (名称不可使用连接符等特殊字符,命名可以参考APP应用名称 比如 FaceBook)

    1. react-native --v //查看版本
      react-native init demo --version 0.48.0//安装指定的版本
      react-native init demo --verbose --version 0.48.0 //verbose是初始化的时候显示安装详情的,安装什么模块以及进度
      npm view react-native versions //可以查看react-native所有的版本信息
      

    跳转到对应路径下执行相应的移动端项目:

    cd 项目名 
    react-native run-ios or react-native run-android
    

    如果正常,运行效果如下:

    在这里插入图片描述

    RN调试技巧

    Developer Menu

    Developer Menu是React Native给开发者定制的一个开发者菜单,来帮助开发者调试React Native应用。

    在模拟器上开启Developer Menu

    Android模拟器:

    可以通过Command⌘ + M快捷键来快速打开Developer Menu。也可以通过模拟器上的菜单键来打开。

    iOS模拟器:

    可以通过Command⌘ + D快捷键来快速打开Developer Menu。

    Reload

    刷新页面,其快捷键是 command + R

    注意:只有修改 JavaScript 文件时,刷新功能才起作用。如果新增了文件或者修改了 Native 代码,就需要使用 Xcode 重新编译应用了。

    Debug JS Remotely

    该功能允许开发人员在 Chrome 中调试应用,其调试方式和调试 Web 应用一样。

    change bundle location

    改变打包后的地址

    toggle inspector

    在模拟器中查看组件样式。不怎么好用。

    disable fast refresh

    禁止快速刷新

    Show Perf Monitor

    该功能启用后会显示一个监控窗口,显示出实时的内存占用、UIJavaScriptFPS 等信息。帮助我们调试性能问题。

    Errors and Warnings

    在development模式下,js部分的Errors 和 Warnings会直接打印在手机或模拟器屏幕上,以红屏和黄屏展示。。

    Errors

    React Native程序运行时出现的Errors会被直接显示在屏幕上,以红色的背景显示,并会打印出错误信息。 你也可以通过console.error()来手动触发Errors。

    在这里插入图片描述

    Warnings

    React Native程序运行时出现的Warnings也会被直接显示在屏幕上,以黄色的背景显示,并会打印出警告信息。 你也可以通过console.warn()来手动触发Warnings。 你也可以通过console.disableYellowBox = true来手动禁用Warnings的显示,或者通过console.ignoredYellowBox = ['Warning: ...'];来忽略相应的Warning

    Chrome Developer Tools

    第一步:启动远程调试

    在Developer Menu下单击”Debug JS Remotely” 启动JS远程调试功能。此时Chrome会被打开,同时会创建一个“http://localhost:8081/debugger-ui.” Tab页。

    在这里插入图片描述

    第二步:打开Chrome开发者工具

    在该“http://localhost:8081/debugger-ui.”Tab页下打开开发者工具。打开Chrome菜单->选择更多工具->选择开发者工具。你也可以通过快捷键(Command⌘ + Option⌥ + I on Mac, Ctrl + Shift + I on Windows)打开开发者工具。

    • 断点调试

    当发生一些"莫名奇妙"的问题错误,常用解决方案

    这里的莫名其妙是指,在上一刻代码还可以正常运行,在没有修改的情况下爆红:

    1.刷新 ! 刷新! 刷新!

    2.重新使用react-native run-xxx命令启动App

    3.删掉App程序,关掉本地服务器,清除本地缓存

    yarn:清空缓存
    
    yarn cache clean
    
    npm:清空缓存
    
    npm cache clean -f
    
    
    展开全文
  • React Native中文网 开发工具 前端开发软件:Visual Studio Code 移动端开发软件:Xcode、Android Studio 知识储备 NodeJS React Es6,Es7 React Native介绍 React Naitve的简介:Facebook在React.js Conf2015...

    环境搭建准备

    1. 环境搭建
      React Native中文网

    2. 开发工具
      前端开发软件:Visual Studio Code

      移动端开发软件:XcodeAndroid Studio

    3. 知识储备

      NodeJS React Es6,Es7

    React Native介绍

    在这里插入图片描述

    React Naitve的简介:Facebook在React.js Conf2015大会上推出的一个用于开发Android和iOS App的一个框架,主要编程语言是JavaScript。它的出现使用即拥有Native的用户体验,又保留React的开发效率

    在 React Native 出现前,我们通常会选择这三种移动技术(Native App、HTML5、Hybrid)之一进行开发。

    • Native App:开发原生应用自然性能最好,功能强大。但多平台版本的开发、维护要花费大量的人力物力(iOS版本迭代审核需要时间)。
    • HTML5:虽然有 Web 的优势,即灵活的布局能力、免发版的敏捷迭代潜力、优秀的跨平台特性。在新闻资讯等一些强排版、弱交互的展示类 App 上大展拳脚。但由于 WebView 在移动设备上的性能制约,始终难成大器。
    • Hybrid App:JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。Hybrid App兼具了Native App良好用户体验的优势,也兼具了Web App使用HTML5跨平台开发低成本的优势,但是这个方法存在诸多问题:无法访问离线数据、无法访问设备、无法远程更新。
    • React Native:底层引擎是 JavaScript Core,但调用的是原生的组件而非 HTML5 组件。这样运行时可以做到与 Navive App 相媲美的性能体验,同时因为 JavaScript 代码可以使用后端强大的 Web 方式管理,既可以做到高效开发,也可以实现快速部署和问题热修复。

    React Native优缺点:

    • 优点
    1. 跨平台开发:运用React Native,我们可以使用同一份业务逻辑核心代码来创建原生应用运行在Web端,Android端和iOS端;
    2. 热更新,App可以快速迭代:实时热部署;
    3. learn once,write everywhere:React Native不强求一份原生代码支持多个平台,所以不是write once,run anywhere;
    • 缺点
      1. react native在iOS上仅支持iOS7以上,Android仅支持Android4.1以上;
      2. 开发成本较高,对新手不友好,调试不友好;
      3. 部分复杂的界面和操作,RN无法实现(可以考虑原生+React Native混合开发);
      4. 版本更新较快,建议开发固定版本
    • React Native vs Flutter vs Weex

    在这里插入图片描述

    展开全文
  • 完全征服React Native

    万人学习 2016-08-22 11:47:32
    React Native是Facebook于2015年推出的跨平台开发工具,可用于开发Android和iOS App,并且同时具有混合开发的优点(热更新,跨平台)以及本地App的性能。 本课程采用新的ES6开发,主要内容包括ReactNative的基础知识...
  • React Native初级入门到项目实战

    万人学习 2016-10-13 13:52:46
    ReactNative是由Facebook公司发布的可以进行混合开发的开源技术框架。通过ReactNative可以为iOS和Android两个系统开发应用程序,“Learn once,write anywhere”。使用ReactNative开发,既拥有Native的良好人机交互...
  • The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:XXXX出现原因分析:Tomcat建议使用apache的apr,来更好的运行...

    信息:
    The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:XXXX

    出现原因分析:

    Tomcat建议使用apache的apr,来更好的运行Tomcat;

    --------------------apache的apr 的介绍 ---------------------------

    APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期 的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。

    随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。

    APR使得平台细节的处理进行下移。对于应用程序而言,它们根本就不需要考虑具体的平台,不管是Unix、Linux还是Window,应用程序执行的接口基本都是统一一致的。因此对于APR而言,可移植性和统一的上层接口是其考虑的一个重点。而APR最早的目的并不是如此,它最早只是希望将Apache中用到的所有代码合并为一个通用的代码库,然而这不是一个正确的策略,因此后来APR改变了其目标。有的时候使用公共代码并不是一件好事,比如如何将一个请求映射到线程或者进程是平台相关的,因此仅仅一个公共的代码库并不能完成这种区分。APR的目标则是希望安全合并所有的能够合并的代码而不需要牺牲性能。

    APR的最早的一个目标就是为所有的平台(不是部分)提供一个公共的统一操作函数接口,这是一个非常了不起的目的,当然也是不现实的一个目标。我们不可能支持所有平台的所有特征,因此APR目前只能为大多数平台提供所有的APR特性支持,包括Win32、OS/2、BeOS、Darwin、Linux等等。为了能够实现这个目标,APR开发者必须为那些不能运行于所有平台的特性创建了一系列的特征宏(FEATURE MACROS)以在各个平台之间区分这些特征。这些特征宏定义非常简单,通常用APR_HAS_FEATURE参数设置:

    如果某个平台具有这个特性,则该宏必须设置为true,比如Linux和window都具有内存映射文件,同时APR提供了内存映射文件的操作接口,因此在这两个平台上,APR_HAS_MMAP宏必须设置,同时ap_mmap_*函数应该将磁盘文件映射为内存并返回适当的状态码。如果你的操作系统并不支持内存映射,那么APR_HAS_MMAP必须设置为0,而且所有的ap_mmap_*函数也可以不需要定义。第二步就是对于那些在程序中使用了不支持的函数必须提出警告。

    解决方法:
    http://archive.apache.org/dist/tomcat/tomcat-connectors/native/

    下载与你Tomcat对应版本的 tcnative-1.dll,放到apache-tomcat-N(版本号)\bin 目录下面,重启tomcat ;

    如果你不清楚版本,你随便下载一个版本,放进目录里面,在重启tomcat 的时候,会有提示你合适的 tcnative-1.dll 版本;
    一、
    这里写图片描述

    二、

    这里写图片描述

    三、
    这里写图片描述

    四、
    在这里插入图片描述
    原文地址:http://www.cnblogs.com/java-class/p/4280037.html
    个人微信公众号:
    这里写图片描述

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking

    展开全文
  • hadoop-2.6.0编译好的64bit的native

    千次下载 热门讨论 2015-03-23 10:45:10
    用缺省的32位native库(/opt/hadoop-2.6.0/lib/native)会出现下面的错误: 14/01/27 10:52:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes ...
  • React Native运行原理解析

    万次阅读 多人点赞 2016-09-22 15:54:18
    Facebook 于2015年9月15日推出react native for Android 版本, 加上2014年底已经开源的IOS版本,至此RN (react-native)真正成为跨平台的客户端框架。本篇主要是从分析代码入手,探讨一下RN在安卓平台上是如何构建...
  • H5、React NativeNative应用对比分析

    万次阅读 多人点赞 2016-06-24 01:09:37
    摘要 2015年是React Native发展的一年,2016年必定是React Native蓬勃的一年!2016年React Native很可能成为最为成功的开源技术之一。为什么React Native这么火呢?那么React Native相比H5、Native又有哪些优势呢?...
  • 我的机器学习教程「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~ 任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑...
  • Java的native方法

    万次阅读 多人点赞 2011-07-26 16:43:12
    第一篇:今天花了两个小时把一份关于什么是Native Method的英文文章好好了读了一遍,以下是我依据原文的理解。一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native ...
  • react native error

    万次阅读 2018-02-27 23:32:17
    react native Error react native Error: spawn cmd.exe ENOENT 没有启动react-native start 命令。 正确的启动react-native方式是: react-native start react-native run-android bulid failed ...
  • 转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51538611 注:升级glib库解决问题请参加链接:... 配置完hadoop启动的时候出现如下警告信息: WARN util.NativeCodeLoad...
  • ReactNative初级到项目实战

    千人学习 2017-12-19 21:25:34
    对课程有什么问题或者有什么好的建议都可以联系Hank老师QQ:471926977 ...新颖、实用、详尽的ReactNative初级课程,本 教程涵盖ReactNative官方的新组件和实践,甚 至包括尚未正式发布的新特性 时”!
  • 解决办法:Failed to load the native TensorFlow runtime.

    万次阅读 多人点赞 2018-10-09 09:56:17
    跑CPU版的object-detection的示例程序,导入tensorflow时...Failed to load the native TensorFlow runtime. 解决办法就是:pip install --upgrade --ignore-installed tensorflow 更新一下tensorflow就好了 ...
  • react-native 轮播图 ——react-native-swiper使用

    万次阅读 热门讨论 2017-05-23 23:02:31
    今天学习了轮播图的使用,上网查阅了一下,发现有react-native-swiper和React-Native-Viewpager 两种封装的比较好的第三方组件,对比了下文档,觉得react-native-swiper功能更加完善,而且文档说明比较全面,所以...
  • ReactNative 吸顶

    千次阅读 热门讨论 2018-06-16 19:58:25
    感谢同事提供的店铺UI图和思路。 图录的不太好,但意思差不多表明了。 其实如果结构不复杂的话,可以使用SectionList实现,但我这用的是ScrollTabView,ScrollTabView里面还有列表组件,嵌套在SectionList中很麻烦...
  • [ReactNative入门到精通]React Native概述

    万次阅读 热门讨论 2015-10-11 01:15:10
    2015年9月15日,Facebook发布了 React Native for Android,把 Web 和原生平台的 JavaScript 开发技术扩展到了 Google 的流行移动平台。什么是React NativeReact Native 让开发者使用 JavaScript 和 React 编写应用...
  • 先上代码,配合代码讲解一下使用方法, 我这有用到一个屏幕适配工具类,自己写的,使用方法和代码 请点这里 /** * Created by 卓原 on 2018/6/16. * */ import React from 'react'; ... Image...
  • 我在用react-native进行项目打包的时候,我的debug模式在真机中能够运行,在release模式下运行时闪退,我在Android studio中查看logcat的时候,出现下面代码?请问是什么原因导致的? ``` 07-10 19:05:07.446 ...
  • react-native-zyCountDown 用于react-native的计数组件,倒计时组件 封装的一个倒计时按钮,仅仅使用TouchableOpacity,View和Text. 安装 npm i react-native-zycountdown 或者 yarn add react-native-...
  • React Native开源库react-native-image-crop-picker使用图解

    万次阅读 热门讨论 2017-05-27 15:16:44
    欢迎大家关注【跨平台开发那些事】公众号,定期推送跨平台开发技术实践。 一、开源库介绍 ...目前大多数App都有头像展示的功能,在实际开发中,用户更换头像的需求屡见不鲜,...例如:react-native-image-pick...
  • ReactNative调试

    千次阅读 2015-11-30 08:12:33
    1. 缺少模块根目录, 输入npm install, 会自动安装所需模块. 具体会调用package.json内容, 下载dependencies依赖模块.{ "name": "ChunyuYuEr", "version": "0.0.1", ... "start": "react-native start" },
  • import chrriis.dj.nativeswing.swtimpl.NativeInterface; import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser; public class ReportPreviewUtil extends JPanel { private static final ...
  • React Native -19 Timer定时器的使用 背景:React Native Version:0.3.1 语法 ES6 Step1:介绍RN的定时器就是一个创建方法。并没有像iOS一样的NSTimer类 根据官方提供的文档,定时器有四种形式: • setTimeout,...
  • Native】——关键字Native

    千次阅读 2018-11-08 14:42:15
    native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来...
  • 在使用自定义UI组件时,定义JS组件报如下错误has no propType for native prop.If you haven't changed this prop yourself,this usually means that your versions of the native code andr JavaScript code are ...
  • react-native-video 是一个播放视频的开源组件, 它的用法很简单。 1.安装 依次执行下面两个命令, npm i -S react-native-video react-native link (这一步是连接本地视频库) (1) ios: 如果您想允许其他应用...
  • 在React Native开发中,官方为我们提供的Tab控制器有两种:TabBarIOS和ViewPagerAndroid。TabBarIOS,仅适用于IOS平台 ViewPagerAndroid,仅适用于Android平台(严格来讲并不算,因为我们还需要自己实现Tab)。在...

空空如也

1 2 3 4 5 ... 20
收藏数 154,830
精华内容 61,932
热门标签
关键字:

native