自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bluesky_03的专栏

不断优化工作方式、工具、流程,不断重构代码,不断思考是否合理。

  • 博客(80)
  • 收藏
  • 关注

原创 iOS-compile_debug-crash_record

1. 对同一个变量,在不同线程,同时读写的问题。 崩溃定位:越界。解决方案:变量加锁2.*** -[__NSCFString dataUsingEncoding:allowLossyConversion:]: didn't convert all characters推测是某些字符不能转换,但也不应该崩溃呀。解决方案:允许有损转换:NSData* retData

2015-07-07 18:59:58 722

原创 iOS-compile_debug-debug_skill

1. EXC_BAD_ACCESS对于这种问题,1、增加NSZombieEnabled和MallocStackLogging环境变量:菜单Product--》Edit Scheme...,在弹出的窗口上方选择自己的项目及模拟器,左侧选择"Run ***.app"(***是你的项目名称),右侧选择Arguments选项卡,在Environment Variables中增加Name: NSZo

2015-07-07 18:40:10 518

原创 iOS-compile_debug-crash_gain

1。调试过程中出现。2。App Store上的应用,崩溃记录从App Store下载。3。任意设备运行应用时的崩溃,会记录在设备中,通知itunes同步到电脑(mac系统或windows系统)后,可以在相应的目录找到崩溃记录:   • Mac OS X: ~/Library/Logs/CrashReporter/MobileDevice/• Windows XP: C:\Docum

2015-07-07 18:18:53 464

原创 iOS-ui-UISlider

滚动条滚动条分两部分:track and thumb滚动条提供默认的track和thumb,可以使用自定义的图片。使用两张图片来表示进度。从最小值(一般是最左边)滑块之间,使用minimum track image图片来绘制,使用setMinimumTrackImage来设置。从滑块到最大值(一般是最右边)之间,使用maximum track image图片来绘制,使用

2015-07-07 17:32:41 535

原创 iOS-ui-normal_ui_control

苹果的ui控件都是以UI开头,比如UISlider、UIView、UISwitch、UITextField。所以,在查找一个控件时,查找关键字的开始是UI。很多控件都是UIControl,所有UIControl都是UIView。静态控件,一般只用于显示信息,不交互,如label和imageView。动态控件,如按钮等,一般用于交互。被动控件,如文本控件,能交互,一般记录信息

2015-07-07 17:27:00 422

原创 iOS-ui-colorPicker

本质一个展示信息并可选择信息的控件。前提使用BHColourPickerController。结构设计成一个UIViewController,跟常规的view的容器的使用没有差别。推导发散* BHColourPicker是实现了选择颜色的ui。* BHBlackCircleView提供一个黑色的底图,在前景图完全透明时,即看到黑色。* BHColourP

2015-07-07 17:25:59 1507

原创 iOS-ui-application_run_based_view

本质程序运行时的交互。结构设置为代理并实现特定协议。// 新版xcode自动创建的工作,传入AppDelegate给sdk内核。#import "AppDelegate.h"int main(int argc, char * argv[]) {    @autoreleasepool {        return UIApplicationMain

2015-07-07 17:22:01 417

原创 software_base-command_tool-vim-ctags

--------------------------------------跳转功能几乎所有ide都有这个功能,比如跳到定义的地方。需要安装ctags:brew install ctags(先安装brew:sudo sucurl -L http://github.com/mxcl/homebrew/tarball/master | tar xz --strip 1 -C

2015-04-18 11:44:12 413

原创 software_base-command_tool-vim-find

查找文件(包括文件夹),几种方式:建议多使用easygrep跟vimgrep,其次是cscope。1. find使用find命令,在当前目录查找并打开文件(夹),比如:find vim-find,相当:e vim-find,可以直接使用e来替代find。这种查找是在当前path中查找,所以应该先设置好当前路径,比如使用netrw的情况下只需要按下c即可。操作:c -

2015-04-18 11:43:01 410

原创 software_base-command_tool-vim-netrw

vim可以配置成直接编译运行,也就是执行gcc之类的指令。如果要使用第三方的库文件,应该在编译指令中指定,比如:exec "!g++ -Iffmpeg/include/ -Lffmpeg/lib/ % -o %--------------------------------------netrw.vim这是vim7.x自带的文件管理插件,比较实用。可以这样打开netrw

2015-04-18 11:40:25 512

原创 software_base-command_tool-find

find ./ -iname "bsdir"find ./ -iname "*.plist" | xargs grep "hello.IosDemo"find ./ -iname "gcctest.c" | xargs grep "FLLOW_ME" -n find ./ -iname "*.c" | xargs grep "HAVE_FIRST" -nfind . -type f

2015-04-18 11:38:51 501

原创 software_base-version_control-git-normal

#配置信息git config --list  (git config -l)  git remote set-url origin http://192.168.xx.yy:8888/git/projetname#配置自己的名字跟emailgit config --global user.name "hello"git config --global user.email "

2015-04-12 21:46:46 434

原创 android-command_tool-busybox

adb shell后,不是所有定制的android都支持像grep、find、top、ps之类的命令。为了使用这些命令,使用busybox是个好的选择。1. 在pc上下载busybox,选择对应手机平台。2. adb push到卡上。3. 在手机内操作,拷贝busybox到/system/xbin/内。4. 更改执行权限,chmod 755 busybox。5. 之后就可以使用

2015-04-12 21:11:22 709

原创 multi_media-ffmpeg-get_format

格式获取本质上是通过文件的后缀、文件头部信息,在既定的格式集合中,找出最匹配的格式。前提是先要有既定格式集合(av_format_register_all,并在编译的时候把demuxer打开),并且要有数据才能分析。结构上:推导发散:1.在编译configure的时候,可以enable或disable特定的demuxer,以修改既定的格式集合。2.既然是匹配,就存在

2015-03-28 23:43:02 742

原创 c++-tissue_habit-namespace

auto --自动推导类型for (int v: vec)本质上是语法规则,前提是c++11的支持。推导发散:1.可以简化代码的编写。namespace本质上是标识符的组织方式。推导发散:1.类似于java中的package,使得在不同的目录下可以有同样的命名文件(类)。2.namespace可以作为一个模块,里面可以有不同的类,这些类不会跟别的namespac

2015-03-28 22:57:21 620

原创 software_base-event_drive-listener_msgloop

====基于监听的事件处理本质上是一种设计模块,是一种交互方式。前提是要创建监听对象,然后设置给事件源。结构上,事件源有一个监听对象表,当事件发生时去查表,找出监听对象,然后根据协议,调用监听对象的方法。比如在win32上的观察者模式的实现,自己写一个协议类,然后让事件源持有这个协议类的对象,在适当的时候事件源调用协议类对象的函数,并且要实现协议类的子类,并设置给事件源。比如在

2015-02-16 16:54:20 420

原创 software_base-compile_debug-makefile

====make file使用autoscan把目录中的所有源码文件生成一个configure.scan。mv configure.scan configure.insublime configure.in #修改其中内容aclocal  #create m4autoconf #create configure using m4创建Makefile.am,并加入内容。a

2015-02-16 16:49:43 440

原创 android-logic_class-SharePreference

SharePreference本质是io操作(或持久化),是android平台给的一个简约api,类似于ini之类的配置文件操作类。前提是要先得到一个SharePreference或者是它的editor,可以是当前应用的也可以是别的应用的,这样就可以进一步读写。结构上,操作的文件是key-value结构,提供的接口也是key-value的读或写的接口。推导发散:操作的是同一个文

2015-02-16 16:37:03 831

原创 android-tissue_habit-1

界面都用xml来组织。推导发散:多个xml的出现。在代码中要加载xml。所有控件都有id。res/layout/activity_main.xml-----------------------------------------eclipse中项目的树结构就是真实的目录结构。推导发散:对树结构的操作的就是对真实目录的操作。gen里面放自动生成

2015-02-16 16:34:31 665

原创 android-command_tool-adb

android --打开android sdk managerandroid list or android list avd --列出所有avdandroid avd --打开设备管理器emulator ** --模拟器相关emulator -avd d1 --启动名为d1的模拟器ddms --打开调试器adb devices --所有设备ad

2015-02-16 16:23:59 540

原创 android-compile_debug-adt

android virtual device --avd,android模拟器或真机dalvik debug monitor service --ddms,android调试器推导发散:如果想调试程序,要先运行程序--用avd,可以运行程序。想调试程序,需要使用android的调试插件ddms--运行程序后,切至ddms页面,再下断点,再下调试。------------

2015-02-16 16:14:59 499

原创 android-system_structure-dalvik

dalvik就相当jvm,本质是程序,前提是在android系统中运行。结构不明,但它执行的不是字节码文件(class文件)而是dex文件,所以需要叫DX的工具把class文件转成dex文件。推导发散:要把dex文件加载到dalvik中,是否有加载的问题? dex在执行性能上应该优于class文件。dex文件有它的结构。-------------------------

2015-02-16 15:31:23 688

原创 单元测试

2014-12-14 23:17:17 391

原创 质量控制

质量控制几个手段:1. 程序设计审查。2. 代码review。3. 单元测试。4. 测试。

2014-12-14 23:08:51 410

原创 apt-get

要充分发挥手机的作用,先给它安装个apt-get,之后就可以用apt-get来安装各种命令工具。打开cydia,搜索apt,安装APT 0.6 Transitional。之后可以:apt-get install netstatapt-get install ps# 这个是使用iosOpenDev开发时,xcode把deb包安装到手机时,需要手机先具备的环境条件

2014-12-13 18:34:46 1698

原创 hookktv

使用iosopendev来hook唱吧的一个函数。ipod5,xcode6.1使用Clutch把唱吧(ktv)破解成ipa,并移到mac上解压,再使用class-dump-z把类信息获取出来。目标是ktv在搜索时执行的函数。看应用的界面,对应dump出来的类,可以推测搜索界面的controller应该是SearchMusicViewController。

2014-12-13 18:31:21 552

原创 hookspringboard

抄网上一个常见的hook springboard的例子:创建项目,iOSOpenDev->Logos Tweak (安装后不会有图标)。xm文件里面的#error会提示你拷贝个libsubstrate.dylib过来。到/opt/iosopendev/lib里面拉libsubstrate.dylib到项目的Frameworks目录。再拉进一个UIKit.framew

2014-12-13 17:38:57 2228 1

原创 xcode-iosopendev

目的:让xcode把当前应用包安装到手机上(像从appstore下载一个软件一样)。当前环境:xcode 6.1os x yosemite 10.10xcode会根据xm的内容编译到mm中(xm不是必须有的)。配置build settings:iOSOpenDevDevice  192.168.1.101  #让xcode知道往哪台手机安装应用

2014-12-13 17:35:55 914

原创 iosOpenDev-install

从theos到iosopendev。iosopendev可以使用xcode来完成插件开发。--------------begin 多余的theos{安装iosopendev,不需要安装theos,下面的做法不是必需的:【  // 获取theos,在这里并不是必须的export THEOS=/opt/theossudo git clone git://github

2014-12-13 17:34:16 2245

原创 make-dylib

手动制作是其中一种方法(还有一种方法是使用iosopendev,在其它文章介绍)。dump-class后发现xx应用有使用类xxViewController,这个类估计是继承于UIViewController,对这个类的viewDidLoad作一个hook。dylib代码:#import #import @implementation UIV

2014-12-13 17:31:15 625

原创 hook-app

目的:hook一个特定应用的特定类的特定函数(这个已经经过clutch,再经过class-dump出来)。首先要让特定应用加载你的dylib(注入)。两个方法:1. 手动制作dylib,并拷贝到手机。2. 使用iosopendev。

2014-12-13 17:15:10 713

原创 command-record

#安装deb包dpkg -i xx-arm.deb#查看进程,并过滤ps aux | grep xxx#看应用输出的log,使用socat:apt-get install socatsocat – UNIX-CONNECT:/var/run/lockdown/syslog.sock  #连接系统日志>watch根据进程id来过滤(ps aux | g

2014-12-13 17:12:06 428

原创 clang

clang的使用,摘录于网络上的资料:clang -fobjc-arc -framework Foundation test.m -o testclang -rewrite-objc block.c1.编译单个c源文件,并产生一个目标文件cc -c one.c这条命令产生一个名为one.o的目标文件 2.编译多个c源文件,并为每个文件产生

2014-12-13 17:05:02 567

原创 解码速度

特定机子:QudioQueue播放时的cpu为7%AVAudioPlayer播放时cpu为5%结论:QudioQueue比AVAudioPlayer占用cpu高一些,但它的使用灵活度更高(提供缓冲区)。在播放同时解码,cpu达到24%,是仅播放7%的3陪。纯解码:mp3  1msflac    15ms-4

2014-11-29 00:07:21 929

原创 需要足够大的类

很多时候,我们需要一个简单的类型,这个类型只做很少的事情,知道很少关联的事情。然后,他基本是自身不能生活自理的,他需要让别的类来调用,并让别的类来做更多的事情。所以,我们需要一个更强大的类型,他能够自行完成独立的业务逻辑上的事情,他需要知道更多的事情。于是,更好的设计应该是:设计一个足够大的类型吧!并且使用那个单一的类。职责单一(函数级别上的职责单一

2014-11-26 22:35:48 486

原创 audioconverter

不同格式音频间的转换。对

2014-11-23 22:02:16 5042 4

原创 dump

class-dump-zwget http://networkpx.googlecode.com/files/class-dump-z_0.2a.tar.gz解压后,拷贝到bin目录:sudo cp mac_x86/class-dump-z /usr/binclutch下载Clutch,然后拷贝到手机如scp Clutch [email protected]:Clutch

2014-11-23 21:11:42 684

原创 scp

在iphone执行自己想要的指令。首先编译出自己的指令,使用clang(从gcc进化到clang,我安装的是xcode6.0.1,机子是iphone4所以使用了armv7):clang -o helloworld -arch armv7 helloworld.c -isysroot /Applications/Xcode.app/Contents/Developer/Platfor

2014-11-16 18:46:12 423

原创 ssh

远程让智能设备执行指令。首先到cydia安装openssh,然后在pc的客户端使用ssh登陆到iphone,之后在客户端上的操作就是在iphone上的操作,pc上的键盘就是iphone的键盘。iphone的两个账号:root,默认密码:alpinemobile,默认密码同root。ssh登陆:$ ssh [email protected]

2014-11-16 17:42:14 437

原创 mac上画图

mac上,画流程图,画uml图,用什么工具?强烈推荐使用OnniGraffle6.0。画图的模板可以补充,比如到https://www.graffletopia.com/注册后下载uml的模板:UML 2.1 Collection(.gstencil)。

2014-01-10 17:10:33 1013

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除