注册 登录
  • 欢迎访问Sharezer Blog
Android

Android&iOS一键分享

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) 效果如下,选择微信即可。 2. An……继续阅读 »

sharezer 3天前 20浏览 0评论 0个赞

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

sharezer 2个月前 (09-25) 113浏览 0评论 0个赞

Adb

通过adb获取task id

/** * 通过包名获取task id,不存在为-1 * * @param packageName * @return */ public int getTaskId(String packageName) { String result = execRootCmd("dumpsys activity | grep " + packageName); int start = result.indexOf("TaskRecord{"); if(start > 0){ int end = result……继续阅读 »

sharezer 1年前 (2017-07-03) 614浏览 0评论 0个赞

Android

Android 移除最近任务

权限 必须是一个系统app,增加以下权限: <uses-permission android:name="android.permission.REAL_GET_TASKS" /> <uses-permission android:name="android.permission.REMOVE_TASKS"/> <uses-permission android:name="android.permission.REORDER_TASKS"/> 代码 /** ……继续阅读 »

sharezer 2年前 (2017-04-20) 1232浏览 0评论 0个赞

IOS

保存NSImage到文件

@IBAction func SaveImage(_ sender: Any) { if resuleImage.image != nil { let savePanel = NSSavePanel.init() savePanel.allowedFileTypes = [(captureFilePath?.pathExtension)!] savePanel.message = "Choose the path to save the image" savePanel.isExtensionHidden = false ……继续阅读 »

sharezer 2年前 (2016-12-13) 492浏览 0评论 0个赞

Cocos

Creator + Canvas + IOS实现UIWebView透明背景显示HTML

功能描述 IOS原生开发应用时,一些比较华丽的特效比较不好实现。如,粒子系统、骨骼动画、物理碰撞等。 所以有些比较绕的方式就是在HTML中实现表现,这样安卓和IOS也可以直接使用同一个H5界面做展示。 本文HTML页面使用Creator开发。 主要分几步实现: 透明WebView 透明掉HTML背景(Canvas透明) 去掉Creator加载界面 过程 WebView透明 在IOS中新建一个Image,有来检验UIWebView,是否透明。 在Image上放上一个UIWebView,由……继续阅读 »

sharezer 2年前 (2016-12-01) 1501浏览 0评论 0个赞

Cocos

CososCreator 跨域访问服务器获取数据加载图片

前言 最近使用Creator写游戏,用遇到跨域问题。 一个是使用XMLHttpRequest,直接获取时提示跨域。 另一个cc.loader.load加载外部图片,显示图片的时候。 纠结了很久,最后只能通过服务器转发来实现。 过程 服务器转发 这里实用php实现,建立一个php文件,加入以下代码: <?php header("Content-Type: text/html;charset=utf-8");  header("Access-Control-Allow-Origin: *"……继续阅读 »

sharezer 2年前 (2016-11-18) 1209浏览 0评论 0个赞

C#

【小工具】Excel导出工具

功能 读取Excel文档(2003或2007) 在表格中列出数据 编辑、输入、删除数据 导出成json、xml、csv格式 界面 过程 新建工程 Visual Studio中新建一个Windows窗体,基于C#。 选择文件 一种方法是点击按钮触发事件 private void BtnSelect_Click(object sender, EventArg……继续阅读 »

sharezer 2年前 (2016-11-09) 520浏览 0评论 0个赞

C#

【小工具】查询开关机时间

原理 调用Window的事件(EventLog),通过开机与关机的事件ID,得到开关机记录。 界面 源码 const long ON_ID = 2147489653; //开机 const long OFF_ID = 2147489654; //关机 private void BtnSearch_Click(object sender, EventArgs e) { mainListBox.Items.Clear(); EventLog eventLog = new EventLog(); eventLog.Log = "Sy……继续阅读 »

sharezer 2年前 (2016-11-07) 1027浏览 0评论 0个赞

C#

【小工具】批量使用TinyPNG压缩图片

一个项目开发到后期,总会遇到资源过多,打出来的包太大这些问题。 TinyPNG是一个很好的在线图片压缩工具,一般的JPG或PNG图片都能压缩到原来大小的四分之一左右。 不过,TinyPNG网站只支持一张一张的传输,还好他有提供API。 本工具就是调用TinyPNG的API,批量把图片传输到TinyPNG,再把压缩完的图片批量下载回来。 耗时有点略长,没办法,访问国外的网站就是这样。 ……继续阅读 »

sharezer 2年前 (2016-11-03) 749浏览 0评论 3个赞

C#

【小工具】批量拷贝文件到某文件夹及子文件夹下

前言 在项目开发过程中,有时候会建一些文件夹,用来定义文件的结构。 建完文件夹并不一定就会马上放入文件。 比法说我经常会在文件夹Resources放一下Datas目录,用来存放策划提供的数据。 当文件夹Datas还没放入东西的时候,我就无法把目录上传到Git上。 这样策划也就看不到这个目录。 现在的主流做法是在空文件夹里放置一个.gitignore文件在里面比较实用,也不会觉得突兀。 这样一个一个文件夹拷贝太麻烦了,因此写了这个小工具。 界面 操作方式,选择文件,……继续阅读 »

sharezer 2年前 (2016-09-23) 648浏览 1评论 0个赞

Default

JS 通过方法名,判断方法是否存在,并执行

最近因为学习Laya的原因,重新接触了一下JS 在写状态机的时间突然有一个想法 当我从状态机得到一个样的状态,把他转换方法名,通过得到的方法名,能不能直接调用方法 比方说,当前的状态为TestState,判断TestState()是否存在,如果存在则执行this.TestState() 方法一 通过hasOwnProprety判断 var funcName = "TestFunc"; if (GameManager.prototype.hasOwnProperty(funcName)) {   &nb……继续阅读 »

sharezer 2年前 (2016-09-13) 698浏览 0评论 1个赞

Unity

AssetDatabase.AddObjectToAsset的问题

有两个类NodeGraph和StateNode,继承于ScriptableObject 现在将一个NodeGraph实例保存到Assets中 AssetDatabase.CreateAsset(curGraph, "Assets/Database/" + wantedName + ".asset"); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); 然后再生成一些StateNode的实例,插到这个NodeGraph的实例中 curNode.name……继续阅读 »

sharezer 2年前 (2016-09-06) 7861浏览 0评论 0个赞

Adb

adb 安装系统app

步骤: <span style="line-height:1.5;">root权限</span> 解除目录权限 拷贝更新文件 赋值644权限给安装的文件 重启 su mount -o remount/system/app cp mnt/sdcard/sda1/DanceDemp.apk /system/app //app下有时候不行,改到/system下 chmod 644 /system/app/DanceDemp.apk reboot <br /> ……继续阅读 »

sharezer 2年前 (2016-07-27) 461浏览 0评论 0个赞

Unity

Unity GL画一条贝塞尔曲线

using UnityEngine; using System.Collections; using UnityEditor; using System.Collections.Generic; public class DrawLineWindow : EditorWindow { [MenuItem("Tools/测试")] public static void ShowWindow() { DrawLineWindow window = EditorWindow.GetWindow(typeof(DrawL……继续阅读 »

sharezer 2年前 (2016-07-15) 857浏览 0评论 0个赞

Unity

Unity GL画直线

public class DrawLineWindow : EditorWindow { [MenuItem("Tools/测试")] public static void ShowWindow() { DrawLineWindow window = EditorWindow.GetWindow(typeof(DrawLineWindow)) as DrawLineWindow; window.Init(); } private Material lineMaterial; ……继续阅读 »

sharezer 2年前 (2016-07-15) 1145浏览 0评论 0个赞

Unity

绘制子弹路径

在物理世界中,让子弹的刚体受到一个冲量,就可以简单的实现子弹的飞行。 Body.AddForce(Direction * Froce , ForceMode.Impulse); 而ForceMode.Impulse:此种方式采用瞬间力作用方式,即把t的值默认为1,不再采用系统的帧频间隔,即 f•1.0=m•v 那么v=f/m 如果射击的物体是移动的,那刚体的初速度则为射击物体的速度。 故v=v0+f/m 最近遇到一个需求,已知初速度和冲量,要绘制出子弹的轨迹。 如下图效果: 考虑把它分成x轴和y轴的运动。 即,在x轴上匀速运……继续阅读 »

sharezer 2年前 (2016-06-06) 687浏览 0评论 0个赞

Editor

UnityEditor 查找项目内文件大小

为了从资源上优化安装包的大小,写了一个工具 点击查找,列出所以文件,并按从大到小的顺序排序 先上一下效果图 /// <summary> /// 定义文件结构体 /// </summary> public struct FileAttribute {     public string path;     //路径     public long size;       /……继续阅读 »

sharezer 3年前 (2016-05-27) 385浏览 0评论 0个赞

Api

AssetDatabase

AddObjectToAsset    将objectToAdd这个对象添加到指定路径上的现有资源 AssetPathToGUID    返回指定路径path下资源的GUID(全局唯一标识符) ClearLabels    清除标签 Contains    资源中是否存在该对象 CopyAsset    复制指定路径的资源文件到一个新的路径 CreateAsset    在指定的路径新建资源 Crea……继续阅读 »

sharezer 3年前 (2016-01-06) 1484浏览 0评论 0个赞

Unity

打包自己的dll并在Unity中调用

1、在VS中新建一个类库MyLib 2、新建一个Class1 增加变量_value和方法SetValue 并点击生成解决方案 在输出窗口,可以看到dll路径 将dll拷贝到Unity Assets 目录下。 3、在Untiy的脚本中引用MyLib,就可以调用Class1中的方法了 现在,假如我要写一个类,继承于MonoBehaviour,并且在Unity编辑器中使用,那又要怎么做呢。 打开刚刚新建的MyLib的类库,添加UnityEngine.dll 新建类Class2,引……继续阅读 »

sharezer 3年前 (2015-11-27) 515浏览 0评论 1个赞