- 浏览: 29114 次
- 性别:
- 来自: 沈阳
最新评论
文章列表
由于使用了NDK编译的可执行文件在应用中调用,在4.4及之前的版本上一直没出问题。
最近由于要测试在Android L上的运行情况发现,当运行该可执行文件时,报如下错误:
error: only position independent executables (PIE) are supported.
PIE这个安全机制从4.1引入,但是Android L之前的系统版本并不会去检验可执行文件是否基于PIE编译出的。因此不会报错。但是Android L已经开启验证,如果调用的可执行文件不是基于PIE方式编译的,则无法运行。解决办法非常简单,在Android.mk中加入如下flag就行。
L ...
下载:
git clone https://github.com/zencodex/hack-android.git
本人主要在Mac osx使用,所以linux下没经过严格测试,可能会存在小问题。签名脚本是自己写的,临时文件写到了/tmp 目录下,所以linux下要确定存在/tmp。
如遇到问题,可在github上[new issue](https://github.com/zencodex/hack-android/issues)。
romtools可配合厨房工具使用,可用于ROM的定制修改,厨房工具下载:
git clone https://github.com/zencod ...
查看某个时间点以后的log
git log --since="Fri Aug 10 19:16:10 2012 +0800"
或者用--until 查看某个时间点以前的log
git log --before="Fri Aug 10 19:16:10 2012 +0800"
获取某个时间点以后的commit,-n 1 表示只返回一个,最近的一个
git rev-list -n 2 --since="Fri Aug 10 19:16:10 2012 +0800" yourbranch
获取某个时间点以前的comm ...
1). 检查仓储.git/hook下面是否有 commit-msg 文件,如果没有到下面的地址下载:
<http://review.cyanogenmod.org/tools/hooks/commit-msg>
<https://gerrit-review.googlesource.com/tools/hooks/commit-msg>
如果有自己的gerrit-review服务器,可以直接在网址后面加上 `/tools/hooks/commit-msg` 即可下载。
添加后,每次执行git commit 都会自动在log里面生成 Change-Id,用 ...
### git常用命令
~~~
git pull --rebase
从服务器获得更新
git status
查看本地修改
git add .git add xxx
添加本地的修改
git rm xxx
删除一个本地修改
git commit
提交本地修改,但没有上传到服务器,只是本地的记录,git commit --amend,修改上个commit的log信息,已经push到服务器的无效。
git rebase -i
如git rebase -i HEAD~3 ,修改或合并多个本地commit。
git push
把 本地的修改更新到服务器
git log
查看修改记录
git ...
空内容分支是指全新的分支,不是基于现有的分支节点上创建,可以存放全新的初始的代码。注意这么用会增加仓储的大小,如果不是特别需要,不建议这么做。
git commit --allow-empty -m "initial commit"
git push origin HEAD:refs/heads/[branch name]
转自:http://www.yinqisen.cn/blog-107.html
随机生成难点是在于如何避免碰撞,有人说用md5,GUID这些机制啊,当然可以,但是做为账号,看着有乱,而且生成位数也过长。
本方法只需要解决1秒内的并发碰撞就可以,因为固定头部采用的是unixtime时间,精确到秒,超过1秒,这个头部的时间肯定变化了。同时本方法也可以用户随机订单编号的生成。
测试条件是用循环创建1万个随机账号(毫秒级),0碰撞,10万个大约有0-3个碰撞。应该没有哪个互联网公司会在瞬间同时创建这么多账号,所以足够应付数十亿PV这么大的规模了。
~~~.java
// 自动生成随机用户名
// 测试,循环创建1万个随机账号,0碰撞,10万大约0-3个碰撞,足够应付未来数十亿 ...
#### 1. 通用方法:
adb shell dumpsys window displays |head -n 3
输出类似如下信息:
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
Display: mDisplayId=0
init=1080x1920 440dpi cur=1080x1920 app=1080x1920 rng=1080x1025-1920x1865
1080x1920 就是屏幕分辨率。
#### 2. 高通平台
adb shell wm ...
#### 原理见下图:
被称为利用投飞镖的方法求PI
![circle pi](http://www.yinqisen.cn/wp-content/uploads/2015/11/toubiaopi.jpg)
#### 以下总结选自其他网友:
1. Figure2是Figure1的右上角的部分。
2. 向Figure2中投掷飞镖若干次(一个很大的数目),并且每次都仍在不同的点上。
3. 如果投掷的次数非常多,Figure2将被刺得“千疮百孔”。
4. 这时,“投掷在圆里的次数”除以“总投掷次数”,再乘以4,就是PI的值!(具体的推导过程参见原文)
在这个算法中,很重要的一点是 ...
在查看行数较多的PHP脚本时候,比如G跳到文件底部,经常会丢失语法高亮,经google 这个应该是和自动保存功能冲突所引起,具体讨论见:
<https://github.com/spf13/PIV/issues/15>
解决方法,编辑.vim/bundle/PIV/ftplugin/php.vim, 删除如下几行:
58 call s:InitVariable("g:load_doxygen_syntax", 1)
59 call s:InitVariable("g:syntax_extra_php", 'doxygen')
60 ...
本篇是继上一篇 [PHP实现投镖求PI法,最笨但最有意思](http://www.yinqisen.cn/blog-676.html)
讲完最笨的,再说一个更精巧的方法,代码如下:
~~~.php
<?php
// pi = 2 + 2/3 + 2/3*2/5 + 2/3*2/5*2/7 + ...
$pi = (double)2.0; $z = (double)2.0;
$a = 1; $b = 3;
while ($z > 0.0000000000001) {
$z *= $a / $b;
$pi += $z;
$b += 2;
$a++ ...
$TOC$
#### 叨叨几句
本来这个问题是在oschina上提出的:
<http://www.oschina.net/question/1179015_2140695>
但一直没收到合适的答案,所以还是自己下功夫梳理了一下,如果有错误的地方,欢迎交流。
通常的函数是通过ZEND_FUNCTION(xxx) 这种宏定义来实现的,这个规范很好理解,也很容易读懂源码。
但empty(), isset()的处理比较特殊,类似的还有echo, eval等。
#### 准备工作
用于查看PHP opcode的扩展vld,下载:
<http://pecl.php.n ...
**代码功能:**循环拼接字符串,并替换子字符串
**硬件环境:**Intel Core2 Duo T7500@2.20Ghz CPU; 2 GB RAM; OS Debian GNU/Linux 2.6.32 i686
### 代码执行时长
![代码运行时长](https://static.oschina.net/uploads/img/201511/14142908_AExs.png)
**代码性能对比图**
![代码性能对比图](https://static.oschina.net/uploads/img/201511/14144357_WZxg.png)
最慢: Java gc ...
Yii 中为了美化URL,可以把
/index.php?r=post/view&id=100
转变成下面path的形式:
/index.php/post/100
Yii的配置中加入:
```
<?php
'urlManager'=>array(
'urlFormat'=>'path',
// 'urlFormat'=>'get',
'urlSuffix' => ".do",
// Disable index.php
...
下载代码仓储 <https://android.googlesource.com/platform/system/extras>:
git clone https://android.googlesource.com/platform/system/extras
选择对应的版本:
cd extras
git checkout android-4.1.1_r1
编译 simg2img:
cd ext4_utils
gcc -o simg2img -lz sparse_crc32.c simg2img.c
拆包android镜像文件: ...