登录
  • 欢迎访问Sharezer Blog

最新发布 第5页

Sharezer移动开发

本周热门

Android

Android&iOS一键分享

[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) 效果如……继续阅读 »

Android

JNI中多线程回调Java方法问题

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(……继续阅读 »

Android

Webrt中H264编码相关问题

编译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_……继续阅读 »

Android

Android查看自己的应用签名及三方APK签名信息

一、查看自己的应用签名: 首先在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……继续阅读 »

Android

Android 单例模式最好的写法

一般来说,通常写法是这样的: public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } 这种写法线程不安全,所以有的是加线程锁,加了之后是这样的: pub……继续阅读 »

Default

隐私政策

隐私政策 本应用尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息。但本应用将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本应用不会将这些信息对外披露或向第三方提供。本应用会不时更新本隐私权政策。 您在同意本应用服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本应用服务使用协议不可分割的一部分。 1. 适用范围 (a) 在您注册本应用帐号时,您根据本应用要求提供的个人注册信息; (b) 在您使用本应用网络服务,或访问本应用平台网页时,本应用自动……继续阅读 »

Android

I420Frame转YuvImage

private YuvImage i420ToYuvImage(ByteBuffer[] yuvPlanes, int[] yuvStrides, int width, int height) { if (yuvStrides[0] != width) { return fastI420ToYuvImage(yuvPlanes, yuvStrides, width, height); } if (yuvStrides[1] != width / 2) { return fastI420ToYuvImage(yuvPlanes, yuvSt……继续阅读 »