程序亦非猿

菩提本无树,程序亦非猿。


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 友链

  • 搜索

创建RESTAPI神器-JsonServer

发表于 2015-09-24 | 更新于: 2019-02-12 | 分类于 Tools | 阅读次数:
字数统计: 204 | 阅读时长 ≈ 1 分钟

JsonServer

Get a full fake REST API with zero coding in less than 30 seconds (seriously)

可以用来创建 RestApi,非常方便.

安装

应该还需要装NodeJs什么的,但是我已经安装过了.

1
$ sudo npm install -g json-server

基本使用

  1. 找个地方新建一个db.json文件
    写入一段json,如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
    "posts": [
    { "id": 1, "title": "json-server", "author": "typicode" }
    ],
    "comments": [
    { "id": 1, "body": "some comment", "postId": 1 }
    ],
    "profile": { "name": "typicode" }
    }
  2. 启动server

1
json-server --watch db.json
阅读全文 »

Mac抓包工具Charles

发表于 2015-09-24 | 更新于: 2019-02-12 | 分类于 Tools | 阅读次数:
字数统计: 165 | 阅读时长 ≈ 1 分钟

Charles

Mac下的抓包工具,去官网下载,安装.
默认的Charles每天用30分后就需要再关闭再打开.
破解实属无奈之举,下载破解jar
替换对应的jar就行.

手机抓包

准备

确保手机和电脑用的同一个Wifi!

查看电脑ip

  1. 用命令
    1
    ifconfig

结果

  1. 网络
    打开网络设置

效果

阅读全文 »

XCode导致Git无法使用

发表于 2015-09-22 | 更新于: 2019-02-12 | 分类于 Android | 阅读次数:
字数统计: 156 | 阅读时长 ≈ 1 分钟

前言

今天一打开AS,发现git用不了了,想着我啥也没干呐,没Git怎么行!

AS提示
点fix提示:

执行Git命令也得到提示:
提示:Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
看来确实用不了,无奈google之,发现个类似的错误.

找到解决方法如下,记录一下:

阅读全文 »

通过包名杀死App

发表于 2015-09-18 | 更新于: 2019-02-12 | 分类于 Android | 阅读次数:
字数统计: 102 | 阅读时长 ≈ 1 分钟

前言

今天游戏部门有个需求就是在某个情况下杀死他们App…

好血腥,好暴力的需求啊!
从来没有杀死过别的App啊,我的双手是否会因此沾染鲜血啊…

记录一下:

首先要添加权限:
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

然后代码:

1
2
ActivityManager manager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
manager.killBackgroundProcesses(pkgname);

啊,罪孽深重啊..

神器Vim学习

发表于 2015-09-18 | 更新于: 2019-02-12 | 分类于 Tools | 阅读次数:
字数统计: 172 | 阅读时长 ≈ 1 分钟

Vim

vim 早有耳闻,这次来稍微入个门先.

vim filename进入vim模式.
输入a或者i,进入编辑模式.
按Esc退出编辑模式.
如果要保存,在浏览模式下输入:wq,保存并退出.
如果有所改动但是又不想保存则输入:q!,不然会提示有错误.

阅读全文 »

EventBus的使用

发表于 2015-09-18 | 更新于: 2021-02-08 | 分类于 Android | 阅读次数:
字数统计: 205 | 阅读时长 ≈ 1 分钟

EventBus

Android optimized event bus that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.

优化的事件总线,简化app各个类之间的交互.

使用

添加依赖

compile 'de.greenrobot:eventbus:2.4.0'

注意混淆

使用EventBus,如果混淆的话必须要加上以下几句:

1
2
3
4
-keepclassmembers class ** {
public void onEvent*(**);
public void onEventMainThread(**);
}

必备插件

当定义的Event越来越多,我们要寻找某个Event哪里接收哪里发送会比较麻烦.
幸好有这么一个插件可以帮助我们:

EventBus Intellij Plugin

功能:

Provides actions which allow you quickly move around the event bus.

  1. EventBus.post to onEvent or onEventMainThread
  2. onEvent or onEventMainThread to EventBus.post

效果:

onEventMainThread效果图

点击上图的图标,会帮你找到发送的地方.
点击后效果

同样,也能在发送的地方查找哪里接收.

源码解析

EventBus-源码解析

使用HttpUrlConnection下载文件

发表于 2015-09-17 | 更新于: 2019-02-12 | 分类于 Android | 阅读次数:
字数统计: 146 | 阅读时长 ≈ 1 分钟

记录一下使用HttpUrlConnection的Get方式下载文件的方法.

Show the code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
private String mUrl="http://download.fir.im/v2/app/install/559d229d692d791592000016?download_token=6adb9ccc081979064c9d453b1a9d7bf5";

private void download() {

try {
//file:/storage/emulated/0/test.apk
File file = new File(Environment.getExternalStorageDirectory(), "test.apk");
Log.d(TAG, "download: file:" + file.getPath());
URL url = new URL(mUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
InputStream in = connection.getInputStream();
BufferedInputStream bis = new BufferedInputStream(in);
if (!file.exists()) {
file.createNewFile();
} else {
file.delete();
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file);

byte[] buffer = new byte[1024];
int size = -1;
while ((size = bis.read(buffer)) != -1) {
fos.write(buffer, 0, size);
}

fos.flush();
fos.close();
bis.close();
connection.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

RxJava多线程操作

发表于 2015-09-17 | 更新于: 2019-02-12 | 分类于 Java | 阅读次数:
字数统计: 656 | 阅读时长 ≈ 2 分钟

前言

上一次学习了解了一些RxJava比较常用的操作符,这次来学习一下Rx的多线程操作.

Scheduler-调度器

If you want to introduce multithreading into your cascade of Observable operators, you can do so by instructing those operators (or particular Observables) to operate on particular Schedulers.

如果你想给你的操作符链添加多线程,你可以通知这些操作符(或特定的Observables)运行在指定的调度器上.

也就是说RxJava的多线程是由Schedulers操作的,接下去去了解一下.

调度器种类

RxJava中Schedulers有很多种
下表展示了RxJava中可用的调度器种类(RxAndroid中有多少暂时不知道):

调度器类型 效果
Schedulers.computation( ) 用于计算任务,如事件循环或和回调处理,不要用于IO操作(IO操作请使用Schedulers.io());默认线程数等于处理器的数量
Schedulers.from(executor) 使用指定的Executor作为调度器
Schedulers.immediate( ) 在当前线程立即开始执行任务
Schedulers.io( ) 用于IO密集型任务,如异步阻塞IO操作,这个调度器的线程池会根据需要增长;对于普通的计算任务,请使用Schedulers.computation();Schedulers.io( )默认是一个CachedThreadScheduler,很像一个有线程缓存的新线程调度器
Schedulers.newThread( ) 为每个任务创建一个新线程
Schedulers.trampoline( ) 当其它排队的任务完成后,在当前线程排队开始执行

知道了Schedulser,那么接下去就要运用了.
下面介绍两个操作符,对,是操作符.

阅读全文 »

AndroidStudio导出Jar包

发表于 2015-09-17 | 更新于: 2019-02-12 | 分类于 Android | 阅读次数:
字数统计: 116 | 阅读时长 ≈ 1 分钟

工具版本:
Gradle 2.4
AndroidStuido 1.4Beta3

在需要打jar包的Module下的build.gradle下配置如下:

PS:`rename`可以配置jar名字,`into`可以配置jar输出路径
1
2
3
4
5
6
7
8
9
10
11
12
task clearJar(type: Delete) {
delete 'build/libs/yutils.jar'
}

task makeJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('build/libs/')
include('classes.jar')
rename ('classes.jar', 'yutils.jar')
}

makeJar.dependsOn(clearJar, build)

执行命令:

1
./gradlew makeJar

这样在build/libs/下就能出现你所需要的jar包了.

参考

how-to-export-library-to-jar-in-android-studio

AndroidStudio常用快捷键

发表于 2015-09-15 | 更新于: 2019-02-12 | 分类于 Android | 阅读次数:
字数统计: 109 | 阅读时长 ≈ 1 分钟

常用快捷键(Mac)

Name 作用 快捷键
Find Actions
BookMarks 书签,可以留下书签,快速跳转到书签位置 F3(开关书签),cmd+F3打开书签面板
查看某个类的继承关系 选中要查看的类,ctrl+H
The Call Hierarchy Popup 查看某个方法的调用路径 选中方法,ctrl+alt+h
Quick Definition Lookup 快速查看某个方法或者类的实现 选中方法,cmd+Y
1…111213…15
程序亦非猿

程序亦非猿

144 日志
11 分类
101 标签
GitHub
0%
© 2015 — 2021 程序亦非猿 | Site words total count: 122.7k
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
人次 次