本文由 简悦 SimpRead 转码, 原文地址 https://www.jianshu.com/p/d1d7fd48ff0b
前言
我们平常在进行 Android 开发时,都会使用 Gradle 来进行项目配置,通常在对应的 module:app 的build.gradle中,在最上面的一句话一般都为:
apply plugin: 'com.android.application'
这句话就是用来加载 gradle 的android开发插件,然后,我们就可以使用该插件提供的配置方法进行 Android 项目的配置了,即如下所示:
android {
compileSdkVers……继续阅读 »
介绍
Java 中一般认为有 23 种设计模式,我们不需要所有的都会,但是其中常用的几种设计模式应该去掌握。下面列出了所有的设计模式。需要掌握的设计模式我单独列出来了,当然能掌握的越多越好。
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
1、单例设计模式
最好理解的一种设计模式,分为懒……继续阅读 »
废话不多说,直接上代码。
let options = PHImageRequestOptions()
options.version = PHImageRequestOptionsVersion.current;
options.deliveryMode = PHImageRequestOptionsDeliveryMode.highQualityFormat;
options.isSynchronous = true;
let phImageManager = PHImageManager.default()
phImageManager.requestImageData(for: phot……继续阅读 »
新博客:
完整版 - AVFoundation Programming Guide
分章节版:
– 第 1 章:About AVFoundation - AVFoundation 概述
– 第 2 章:Using Assets - 使用 Assets
– 第 3 章:Playback - 播放
– 第 4 章:Editing - 编辑
– 第 5 章:Still and Video Media Capture - 静态视频媒体捕获
– 第 6 章:Export - 输出
– 第 7 章:Time and Media Representations 时间和媒体表现
版权声明:本文为博主原创翻译……继续阅读 »
[TOC]
Android与iOS不嵌入微信SDK的情况上发送一份文件给微信好友。
1. iOS 一键分享
let activityVC = UIActivityViewController(activityItems: ["需要分享文件asset" as Any], applicationActivities: nil)
activityVC.popoverPresentationController?.sourceView = self.view
self.present(activityVC, animated: true, completion: nil)
效果如……继续阅读 »
1. 背景
在JNI中使用中需要在一个c层的回调方法中调用Java层的静态方法,一开始的设想是初始化的时候保存JNIEvn与jclass为全局变量,需要的时候直接使使用。在实际使用中发现,直接使用会出现奔溃。
初步猜测可能是多线程引起。
2. 问题排查
2.1 步骤1 子线程中使用全局JNIEnv与jclass
使用方法
jmethodID mid = (*g_env)->GetStaticMethodID(g_env, g_cls, "print", "(Ljava/lang/String;)V");
jstring param = (*g_env)->NewStringUTF(……继续阅读 »
import java.io.Serializable;
public class IsAssignableFromTest implements Serializable{
/** 序列号 */
private static final long serialVersionUID = 5716955136475665579L;
public static void main(String[] args) {
//测试是否实现了父类
boolean re1= Object.class.isAssignableFrom(IsAssi……继续阅读 »
编译WebRTC后,默认是没有把H264编码编进来的。WebRTC中H264编码采用的是openh264,解码默认采用的是ffmpeg,移动版本android,ios默认采用的是系统的h264硬件编码,如果你的手机支持H264硬件编码的话,WebRTC就会默认支持H264。
1.如何在桌面版本中开启H264编码
使用gn生成ninja文件时,加入以下两个选项就可以生成 ffmpeg_branding="Chrome" rtc_use_h264=true,比如我要编译Linux版本,使用以下命令 gn gen out/linux --args='target_os="linux" target_……继续阅读 »
一、查看自己的应用签名:
首先在Terminal控制台中,输入:keytool -list -keystore -v -keystore + jks文件的绝对路径,
keytool -list -keystore -v -keystore C:\Users\Administrator\Desktop\test.jks
.输入密钥库命令:(这里输入的就是你设置的密码,千万别说你忘记了)
然后就可以查看指纹证书了
二、查看三方的APK签名信息:
用winrar或7-zip等压缩工具打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件(例子:CER……继续阅读 »
一般来说,通常写法是这样的:
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
这种写法线程不安全,所以有的是加线程锁,加了之后是这样的:
pub……继续阅读 »