标签归档:ios

Buck-一个快速构建系统,鼓励在各种平台和语言上创建小的、可重用的模块

Buck是一个构建工具。要了解Buck可以为您做些什么,请查看以下地址的文档http://buck.build/

安装

由于Buck用于构建Buck,因此初始构建过程包括两个阶段:

1.克隆buck仓库,并用蚂蚁引导:
git clone --depth 1 https://github.com/facebook/buck.git
cd buck
ant

您必须使用Java8或11才能成功编译。如果您看到来自ANT的编译错误,请检查您的JAVA_HOME指向这些版本中的一个

2.使用buck的自举版本构建buck:
./bin/buck build --show-output buck
# output will contain something like
# //programs:buck buck-out/gen/programs/buck.pex
buck-out/gen/programs/buck.pex --help
预置的降压二进制文件

预置的BUCK二进制文件,适用于任何BUCKsha可从以下地址下载https://jitpack.io/com/github/facebook/buck/<sha>/buck-<sha>.pex第一次请求buck版本时,它是通过jitpack因此,该初始二进制文件可能需要几分钟时间才能可用。每个后续请求都将直接服务于构建的工件。此功能也适用于任何buck叉子,因此您可以https://jitpack.io/com/github/<github-user-or-org>/buck/<sha>/buck-<sha>.pex

对于为JDK 11构建的buck二进制文件,请将url的末尾修改为buck-<sha>-java11.pex

功能已弃用

Buck试图在其内部快速行动。但是,对于面向用户的功能(构建规则、命令行界面等),Buck团队尝试使用优雅的弃用过程。请注意,这通常仅适用于有文档记录的功能,或文档较少但似乎使用广泛的功能。这个过程是:

  • 在Github上会打开一个问题,建议哪些内容将被弃用,以及何时将其删除。对于已弃用的较大功能,可能会有一段时间默认为新设置,旧行为只能与配置更改一起使用
  • 向Buck提交更改,该更改将旧行为置于配置标志之后,并将缺省值设置为旧行为。这些标志可在以下位置找到https://buck.build/concept/buckconfig.html#incompatible
  • 对于较大的功能,最终会进行更改,将默认行为设置为新行为。例如,当Skylark成为默认的构建文件解析器时
  • 当到达删除日期时,将提交更改以删除该功能。此时,配置值仍将进行解析,但不会由Buck在内部使用

许可证

Apache License 2.0

MMKV-微信开发的高效、小型的移动键值存储框架。适用于Android、iOS、MacOS、Windows和POSIX

MMKV是一种高效小的易于使用微信应用中使用的移动键值存储框架。它目前在以下位置可用安卓系统iOS/MacOSWin32POSIX

适用于Android的MMKV

功能

  • 高效MMKV使用mmap与文件保持内存同步,使用协议buf对值进行编码/解码,充分利用Android实现最佳性能
    • 多进程并发:MMKV支持进程间并发读写访问
  • 易于使用你可以边走边用MMKV。所有更改都会立即保存,否sync,否apply需要的呼叫数
  • 小的
    • 几个文件:MMKV包含进程锁、编码/解码助手和mmap逻辑等。真的很整洁
    • 二进制大小约为50K:MMKV在应用程序大小上为每个架构增加约50K,压缩后增加的更少(Apk)

快速入门

通过Maven安装

将以下行添加到build.gradle在您的应用程序模块上:

dependencies {
    implementation 'com.tencent:mmkv-static:1.2.10'
    // replace "1.2.10" with any available version
}

从1.2.8版本开始,MMKV已经已迁移到Maven Central旧版本(<=v1.2.7)仍可在JCenter上使用
有关其他安装选项,请参见Android Setup

快速教程

你可以边走边用MMKV。所有更改都会立即保存,否sync,否apply需要的呼叫数
在应用程序启动时设置MMKV,表示您的Application类中,添加以下行:

public void onCreate() {
    super.onCreate();

    String rootDir = MMKV.initialize(this);
    System.out.println("mmkv root: " + rootDir);
    //……
}

MMKV有一个全局实例,可以直接使用:

import com.tencent.mmkv.MMKV;
    
MMKV kv = MMKV.defaultMMKV();

kv.encode("bool", true);
boolean bValue = kv.decodeBool("bool");

kv.encode("int", Integer.MIN_VALUE);
int iValue = kv.decodeInt("int");

kv.encode("string", "Hello from mmkv");
String str = kv.decodeString("string");

MMKV还支持多进程访问完整的教程可在此处找到Android Tutorial

性能

随机写入int1000次之后,我们得到了这个图表:

有关更多基准数据,请参阅our benchmark

适用于iOS/MacOS的MMKV

功能

  • 高效MMKV使用mmap与文件保持内存同步,使用协议buf对值进行编码/解码,充分利用IOS/MacOS实现最佳性能
  • 易于使用你可以随时随地使用MMKV,不需要配置。所有更改都会立即保存,否synchronize需要的呼叫数
  • 小的
    • 几个文件:mmkv包含编码/解码助手和mmap逻辑,仅此而已。真的很整洁
    • 二进制大小小于30K:MMKV对每个架构的应用程序大小增加不到30K,压缩后(IPA)增加的更少

快速入门

通过CocoaPods安装:

  1. 安装CocoaPods
  2. 开放式终端,cd到您的项目目录,运行pod repo update使CocoaPods了解最新的MMKV版本;
  3. 编辑您的Podfile,添加pod 'MMKV'发送到您的应用程序目标;
  4. pod install
  5. 打开.xcworkspaceCocoaPods生成的文件;
  6. 添加#import <MMKV/MMKV.h>添加到您的源文件中,我们就完成了

有关其他安装选项,请参见iOS/macOS Setup

快速教程

你可以随时随地使用MMKV,不需要配置。所有更改都会立即保存,否synchronize需要打电话。在应用程序启动时设置MMKV,在您的-[MyApp application: didFinishLaunchingWithOptions:],添加以下行:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // init MMKV in the main thread
    [MMKV initializeMMKV:nil];

    //...
    return YES;
}

MMKV有一个全局实例,可以直接使用:

MMKV *mmkv = [MMKV defaultMMKV];
    
[mmkv setBool:YES forKey:@"bool"];
BOOL bValue = [mmkv getBoolForKey:@"bool"];
    
[mmkv setInt32:-1024 forKey:@"int32"];
int32_t iValue = [mmkv getInt32ForKey:@"int32"];
    
[mmkv setString:@"hello, mmkv" forKey:@"string"];
NSString *str = [mmkv getStringForKey:@"string"];

MMKV还支持多进程访问可以找到完整的教程here

性能

随机写入int对于10000次,我们得到了这个图表:

有关更多基准数据,请参阅our benchmark

适用于Win32的MMKV

功能

  • 高效MMKV使用mmap与文件保持内存同步,使用协议buf对值进行编码/解码,充分利用Windows实现最佳性能
    • 多进程并发:MMKV支持进程间并发读写访问
  • 易于使用你可以边走边用MMKV。所有更改都会立即保存,否save,否sync需要的呼叫数
  • 小的
    • 几个文件:MMKV包含进程锁、编码/解码助手和mmap逻辑等。真的很整洁
    • 二进制大小约为10K:MMKV增加了大约10K的应用程序大小,而压缩后的应用程序大小要少得多

快速入门

通过源安装

  1. 从GIT存储库获取源代码:
    git clone https://github.com/Tencent/MMKV.git
    
  2. 添加Win32/MMKV/MMKV.vcxproj您的解决方案;
  3. 添加MMKV项目到项目的依赖项;
  4. 添加$(OutDir)include到您的项目的C/C++->General->Additional Include Directories
  5. 添加$(OutDir)到您的项目的Linker->General->Additional Library Directories
  6. 添加MMKV.lib到您的项目的Linker->Input->Additional Dependencies
  7. 添加#include <MMKV/MMKV.h>添加到您的源文件中,我们就完成了

注:

  1. MMKV是用MT/MTd默认情况下运行时。如果您的项目使用MD/MDd,您应该更改MMKV的设置以匹配您的项目(C/C++->Code Generation->Runtime Library),或反之亦然
  2. MMKV是用Visual Studio 2017开发的,更改Platform Toolset如果使用不同版本的Visual Studio

有关其他安装选项,请参见Win32 Setup

快速教程

你可以边走边用MMKV。所有更改都会立即保存,否sync,否save需要的呼叫数
在应用程序启动时设置MMKV,例如在您的main(),添加以下行:

#include <MMKV/MMKV.h>

int main() {
    std::wstring rootDir = getYourAppDocumentDir();
    MMKV::initializeMMKV(rootDir);
    //...
}

MMKV有一个全局实例,可以直接使用:

auto mmkv = MMKV::defaultMMKV();

mmkv->set(true, "bool");
std::cout << "bool = " << mmkv->getBool("bool") << std::endl;

mmkv->set(1024, "int32");
std::cout << "int32 = " << mmkv->getInt32("int32") << std::endl;

mmkv->set("Hello, MMKV for Win32", "string");
std::string result;
mmkv->getString("string", result);
std::cout << "string = " << result << std::endl;

MMKV还支持多进程访问完整的教程可在此处找到Win32 Tutorial

用于POSIX的MMKV

功能

  • 高效MMKV使用mmap来保持内存与文件的同步,使用protocol buf来编解码值,充分利用POSIX来实现最佳性能
    • 多进程并发:MMKV支持进程间并发读写访问
  • 易于使用你可以边走边用MMKV。所有更改都会立即保存,否save,否sync需要的呼叫数
  • 小的
    • 几个文件:MMKV包含进程锁、编码/解码助手和mmap逻辑等。真的很整洁
    • 二进制大小约为7K:MMKV增加了大约7K的应用程序大小,而压缩后的大小要少得多

快速入门

通过CMake安装

  1. 从GIT存储库获取源代码:
    git clone https://github.com/Tencent/MMKV.git
    
  2. 编辑您的CMakeLists.txt,添加以下行:
    add_subdirectory(mmkv/POSIX/src mmkv)
    target_link_libraries(MyApp
        mmkv)
  3. 添加#include "MMKV.h"添加到您的源文件中,我们就完成了

有关其他安装选项,请参见POSIX Setup

快速教程

你可以边走边用MMKV。所有更改都会立即保存,否sync,否save需要的呼叫数
在应用程序启动时设置MMKV,例如在您的main(),添加以下行:

#include "MMKV.h"

int main() {
    std::string rootDir = getYourAppDocumentDir();
    MMKV::initializeMMKV(rootDir);
    //...
}

MMKV有一个全局实例,可以直接使用:

auto mmkv = MMKV::defaultMMKV();

mmkv->set(true, "bool");
std::cout << "bool = " << mmkv->getBool("bool") << std::endl;

mmkv->set(1024, "int32");
std::cout << "int32 = " << mmkv->getInt32("int32") << std::endl;

mmkv->set("Hello, MMKV for Win32", "string");
std::string result;
mmkv->getString("string", result);
std::cout << "string = " << result << std::endl;

MMKV还支持多进程访问完整的教程可在此处找到POSIX Tutorial

许可证

MMKV是在BSD 3条款许可下发布的。有关详细信息,请查看LICENSE.TXT

更改日志

请查看CHANGELOG.md有关更改历史的详细信息,请参阅

贡献

如果您对贡献感兴趣,请查看CONTRIBUTING.md,也加入我们的Tencent OpenSource Plan

为了明确对我们的成员的期望,MMKV通过了被广泛使用的贡献者公约定义的行为准则。我们认为它很好地表达了我们的价值观。有关更多信息,请查看Code of Conduct

常见问题和反馈

请查看FAQ第一。如果有任何问题,请不要犹豫issues

Kivy-用Python编写的开源UI框架,运行在Windows、Linux、MacOS、Android和iOS上

Kivy

创新的用户界面变得轻松

Kivy是一个开源的、跨平台的Python用于开发利用创新的多点触控用户界面的应用程序的框架。其目的是允许快速简单的交互设计和快速原型设计,同时使您的代码可重用和可部署

Kivy是用Python编写的,Cython,基于OpenGL ES 2,支持多种输入设备,具有丰富的微件库。使用相同的代码库,您可以针对Windows、MacOS、Linux、Android和iOS。所有Kivy小部件都支持多点触控

Kivy是麻省理工学院许可的,由一个伟大的社区积极开发,并得到由管理的许多项目的支持Kivy Organization

安装、文档和示例

详细的安装说明以及教程和一般文档(包括API参考)可在以下位置找到https://kivy.org/docs一个PDF version也是可用的

Kivy提供了许多示例,这些示例可以在examples文件夹

支持

如果您需要帮助,可以在我们的邮件列表上寻求帮助:

我们还有一个不和谐的频道:

贡献

我们喜欢提出请求和讨论新奇的想法。请查看我们的contribution guide你可以随意改进基维

以下邮件列表和不和谐频道专门用于讨论开发Kivy框架及其姊妹项目:

不和谐频道:

姊妹项目

  • Buildozer:Android和iOS通用Python打包程序
  • Plyer:平台相关API的平台无关Python包装器
  • Pyjnius:从Python动态访问Java/Android API
  • Pyobjus:从Python动态访问Objective-C/IOS API
  • Python for Android:用于为Android构建和打包Python应用程序的工具链
  • Kivy iOS:用于构建和打包适用于iOS的Kivy应用程序的工具链
  • Audiostream:用于直接访问麦克风和扬声器的库
  • KivEnt:面向Kivy的基于实体的游戏引擎
  • Garden:由用户创建和维护的小部件和库
  • Oscpy:OSC的一个快速且经过测试的python2/3实现

许可证

  • Kivy根据麻省理工学院的执照条款被释放。请参考许可证文件
  • 提供的字体Roboto和Roboto Mono根据Apache License, Version 2.0可以查看DejaVuSans(用于虚拟键盘)许可证here
  • 当前的UI设计改编自Moblintouch主题的SVG,并根据LGPLv2.1

贡献者

这个项目的存在要归功于所有做出贡献的人。[Contribute]

支持者

感谢我们所有的支持者!🙏[Become a backer]

赞助商

通过成为赞助商来支持这个项目。您的徽标将在此处显示,并带有指向您的网站的链接。[Become a sponsor]










免费的计算机编程类中文书籍,欢迎投稿

免费的编程中文书籍索引

免费的编程中文书籍索引,欢迎投稿.

如果这个仓库对你有帮助,欢迎stars.

欢迎大家将珍藏已久的经典免费书籍共享出来,您可以:

https://github.com/justjavac/free-programming-books-zh_CN/graphs/contributors:贡献者名单

缩放比例

斯威夫特

返回目录

读书笔记及其它

参与交流

测试相关

目录

编译原理

置顶

函数式概念

操作系统

计算机图形学

智能系统

WEB服务器

分布式系统

版本控制

编译原理

编辑器

函数式概念

NoSQL

计算机图形学

PostgreSQL

网络服务器

MySQL

版本控制

管理和监控

编辑器

项目相关

NoSQL

设计模式

PostgreSQL

Web

MySQL

大数据

管理和监控

编程艺术

项目相关

其它

设计模式

Android

网络

APP

大数据

AWK

编程艺术

C/C++

其它

C#

安卓系统

Clojure

应用程序

CSS/HTML

AWK

Dart

C/C++

Elixir

C#

Erlang

封闭式

Fortran

CSS/HTML

Go

省道

Groovy

灵丹妙药

Haskell

二郎

iOS

Fortran

Java

JavaScript

Kotlin

时髦的

LaTeX

哈斯克尔

LISP

IOS

Lua

Java语言

OCaml

JavaScript

Perl

科特林

PHP

乳胶

Prolog

口齿不清

Python

路亚

R

OCaml

Ruby

Perl

Rust

PHP

Scala

序言

Shell

蟒蛇

Swift

R

读书笔记及其它