React Native创建工程,是通过在命令终端输入 react-native init 你的项目名字 来创建工程的,创建的工程会从网络端,同步到你终端所在路径的本地,生成一个和android project类似的项目,如下图。
android文件夹,就是一个可以用android studio打开的android项目。
android文件夹,就是一个可以用android studio打开的android项目。
ios文件夹,是一个可以用xcode打开的ios项目。
index.android.js,这是android的React Native入口文件。
index.ios.js,这是ios的React Native入口文件。
package.json,类似android studio的build.gradle,你依赖的库都写在里面。
node_module文件夹,你依赖的库下载下来都存放在里面,属于git的忽略文件,你要找的依赖库源码也在里面,包括React和React Native。
--
package.json,类似于android studio中的build.gradle添加远程依赖,不同的是,package.json大多数时候不需要我们手动添加,我们只需要在根目录通过命令行,npm install xxxxxx --save 就可以依赖一个库了。
install之后,库的依赖信息,自动被写到package.json里面,对应的库也会被下载到node_module文件夹中,类似android studio依赖后把aar同步到本地。
3、Android开发需要理解的React Native
一般情况下只在一个activity上运行,一般情况下是因为,你也可以自己写新的Activity,继承ReactActivity来实现你想要的逻辑。
2)Application默认创建工程时,就会继承ReactApplication
其中getPackage()就是返回需要与原生交互的包,MainReactPackage时初始化生成,其他是你react-native link命令时帮你插入的。当然,你也可以自己写与原生交互的模块。
通过activity 进行交互:
package com.rn_demo; import android.app.Application; import com.facebook.react.ReactApplication; import com.reactnative.ivpusic.imagepicker.PickerPackage; import com.oblador.vectoricons.VectorIconsPackage; import com.microsoft.codepush.react.CodePush; import com.rnfs.RNFSPackage; import com.vinzscam.reactnativefileviewer.RNFileViewerPackage; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.react.shell.MainReactPackage; import com.facebook.soloader.SoLoader; import java.util.Arrays; import java.util.List; public class MainApplication extends Application implements ReactApplication { private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { @Override protected String getJSBundleFile() { return CodePush.getJSBundleFile(); } @Override public boolean getUseDeveloperSupport() { return BuildConfig.DEBUG; } @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage(), new PickerPackage(), new VectorIconsPackage(), new CodePush(null, getApplicationContext(), BuildConfig.DEBUG), new RNFSPackage(), new RNFileViewerPackage() ); } @Override protected String getJSMainModuleName() { return "index"; } }; @Override public ReactNativeHost getReactNativeHost() { return mReactNativeHost; } @Override public void onCreate() { super.onCreate(); SoLoader.init(this, /* native exopackage */ false); } }
推荐的资料和阅读:
https://blog.51cto.com/u_15641473/5321413
标签:交互,react,new,Override,import,android,com,ReactApplication From: https://www.cnblogs.com/xiamaocheng/p/16974034.html