首页 文章 精选 留言 我的

精选列表

搜索[子流程],共10000篇文章
优秀的个人博客,低调大师

JNI学习笔记之AS+Cmake+NDK配置自动编译出so并集成流程

创建Android工程 这里开始我不勾选supportC++选项,而是我想在一个非NDK工程上添加配置,使之成为NDK工程 编写Java代码 还是一个简单的例子 package com.newtrekwang.ndkpractice; public class JNIUtils { public static native String getStringFromC(); } 编写C/C++源码 在src/main下创建一个cpp文件夹,文件夹名字任取,不过IDE默认cpp存放c/c++源码 image.png gradle配置c/c++源文件路径 在app Module的gradle里的android域添加sourceSets域,像这样 sourceSets{ main { jni.srcDirs=["src/main/cpp"] //指定c/c++源码位置 } } gradle配置CMakeLists.txt文件的位置 在app Module的gradle里的android域添加externalNativeBuild域,像这样 externalNativeBuild{ cmake{ path "src/main/cpp/CMakeLists.txt" } } CMakeLists.txt内容如下 cmake_minimum_required(VERSION 3.4.1) add_library(hello SHARED hello.c) 然后gradle同步一下,接着就可以在JNIUtils的getStringFromC那儿,Alt+Enter直接跳到hello.c文件叫你编写C层的getStringFromC实现。 然后写完hello.c #include <jni.h> JNIEXPORT jstring JNICALL Java_com_newtrekwang_ndkpractice_JNIUtils_getStringFromC(JNIEnv *env, jclass type) { char* result="Hello from C!"; return (*env)->NewStringUTF(env, result); } 然后没什么特殊的配置的话,就可以编译项目生成libhello.so了 具体ExternalNativeBuild域的配置可以查ExternalNativeBuild image.png defaultConfig域的属性 ExternalNativeCmakeOptions ExternalNativeNdkBuildOptions 最后,编译出的so文件会在build目录下 Android Studio 2.2 更方便地创建JNI项目-CMake

优秀的个人博客,低调大师

基于阿里的Node全栈之路(七)[源码分享]——打造高效的开发流程

上一次,在社区里面有童鞋说,如果系列文章能够有代码作为基石,会更好理解,也对新手会更加的友好,所以这里整理了下我的框架,然后趁着上个周末不出去玩,搭建了一个仿cnode的一个小论坛,并持续的更新下去。 github地址 我的阿里云栖博客 本代码搭建的博客 交流QQ群:428812779 文章列表 基于阿里的Node全栈之路(一)部署Docker 基于阿里的Node全栈之路(二)阿里负载均衡的HTTPS优化方案 基于阿里的Node全栈之路(三)利用阿里云OSS实现前后端分离 基于阿里的Node全栈之路(四)前后端分离进阶-自动上传前端代码到OSS 基于阿里的Node全栈之路(五)前后端分离进阶-接口篇 基于阿里的Node全栈之路(六)专有网络VPC的应用 项目部署 项目分为两部分,前端[www]和后端[api],同时部署也是分开的。依赖: Node > 7 Mongodb Redis api 后端框架是eggjs,数据库采用mongodb + redis,参数配置可参照下方代码. /** * 参数全部从Docker环境变量中获取 * @argument mongodb_host mongodb的主机地址 * @argument redis_host redis的主机地址 * @argument redis_password redis的访问密码 * @argument redis_db redis的第几号数据库 */ const mongodb_host = `mongodb://${process.env.mongodb_host || 'localhost'}/blog`; const redis_host = process.env.redis_host || 'localhost'; const redis_password = process.env.redis_password || ''; const redis_db = process.env.redis_db || 0; module.exports = { logger: { dir: './logs', }, security: { csrf: false, }, redis: { client: { port: 6379, host: redis_host, password: redis_password, db: redis_db, }, }, mongoose: { url: mongodb_host, options: {}, }, }; 参数可以自行修改,配好后,构建环境并启动: npm install & npm run debug # or yarn install & yarn run debug 到这里,后端api就启动成功了,可以直接访问 http://localhost:7001/blog/v1/session ,检查是否启动成功。 app 后端框架是vue,采用了vue-cli,模板采用的是webpack,eslint采用airbnb的. const merge = require('webpack-merge'); const prodEnv = require('./prod.env'); /** * 参数从Docker环境变量中获取 * @argument blog_host 后端api地址 */ const host = process.env.blog_host ? `"${process.env.blog_host}"` : '"https://api.mumuimp.com/blog/v1"'; module.exports = merge(prodEnv, { NODE_ENV: '"development"', host, }); 构建环境并启动: npm install & npm run dev # or yarn install & yarn run dev 其实这些参数是可以在系统的环境变量中设置的。Windows: 参照java环境变量设置,在环境变量中添加blog_host环境变量.(建议在用户变量中添加)Linux & Mac: 直接在.bashrc或者.bash_profile添加环境变量. 当然!你也可以直接改了它!;) 项目发布 Docker部署api 具体参照基于阿里的Node全栈之路(一)部署Docker 阿里云OSS部署web 创建index.js,具体代码可以参考index-example.js,并填写好你自己的参数: const store = oss({ accessKeyId: '< your accessKeyId>', accessKeySecret: '< your accessKeySecret>', bucket: '< your bucket>', region: '< your region>', }); 最后, yarn run publish 友情推荐: 一个好用的接口管理平台,支持本地部署,开源MIT,去哪儿前端大神团队开发。 亲情推荐: egg-tablestore,阿里云的tablestore数据库在egg上的插件,为啥亲情推荐呢?因为是我写的, wo lianpi hou. License MIT

优秀的个人博客,低调大师

MySQL主从数据不一致排查:从checksum到修复的安全流程

有一次对账,两边总额差了一笔。我先怀疑是数据出错,翻了半天流水,主库那笔是好端端的。问题不在主库,在从库:同一个订单号,从库读出来的状态,跟主库写进去的不是一回事。奇怪的是,主从延迟曲线一直很平,SHOW SLAVE STATUS 也没报错。延迟没红,数据却早就对不上了。我盯了那么久的那个指标,根本没看住这件事。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册