- 博客(182)
- 资源 (1)
- 收藏
- 关注
原创 跳棋程序有2000用户了,在Github上开源
This is short-cut version of Chinese Checkers for only 2 sides, don't know Chinese Checkers? see https://en.wikipedia.org/wiki/Chinese_checkers.Current it is built on Android Studio 2.1.1, you can
2016-09-01 11:28:54
2972
1
原创 原来 Java8 Stream 中的排序是插入排序
写了小程序,验证 Java8 Steam sort是如何实现package com.pnp.tryJ8col;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;import java.util.stream.Stream;public class Main {
2016-08-25 16:09:58
11500
原创 Android MediaPlayer 类图和调用关系
Service side includes 3 components: Service, Service_client and Service_ImpementationService: it will be regiestered to ServiceManager, so Client can locate it, then call Service to create an Servic
2016-07-13 14:40:22
1590
原创 Droidplanner(tower) 系统分析
个人使用 DroidPlanner 手机地面站(简称DP),觉得很好用。也想了解其系统构成。就 git 下载了一个,在Android Studio 中编译成功。而后又看了下代码下面谈谈自己粗略理解:观测者模式广泛使用观测者模式(Listener), 这跟 model-view-controler 模式也相似, model数据变化,立马通知 view 更新显示。 而无
2016-07-12 10:25:30
5454
1
原创 suid 实验
简单验证看 /usr/bin/passwd 有 suid-rwsr-xr-x 1 root root 47032 /usr/bin/passwd用 payne运行它,发现用户是 root payne@payne-MS-7678:~/try/uid$ passwdroot 2621 0.0 0.0 64636 1596 pts/12 S+ 20:0
2016-06-24 20:54:50
844
原创 android cts理清testpackage和文件名的对应关系
android cts test package 管理有点混乱比如 testpackage android.appwidget 的文件是 CtsAppWidgetTestCases.xml (大概有1/4的文件名和testpackage名字一致 ) 当你生成test plan 的plan 又要指明 testpackage 我写了段python脚本,找出这些
2016-04-26 15:50:51
2113
原创 inotify的用法实践
inotify可用来监听句柄,从而知道文件是否被更改,删除,等监控文件被修改和删除,重新读取数据的代码如下.值得注意的要点是,ubunutu中很多修改的文件策略都是删除,再重建(比如用vi编辑一个文件)当文件删除/再重建后,将收到 IN_DELETE_SELF 消息和 IN_IGNORED 消息, 而后 watch_id 将被从 add_watch中移出,以后再收不到消
2016-04-05 14:23:29
1960
原创 追踪bionic的call method的方法
如果要追踪系统有没有调用bionic的方法,可以采用替换大法比如要查 prctl() 这个函数是否被调用就把 bionic/libc/arch-x86/syscalls/prctl.S 中的prctl 改名为 prctl1而后自己创建一个 bionic/pnp_prctl.cpp #include #include #include __BEGIN_DECLS
2016-03-09 16:17:49
761
原创 2.4g遥控发射机接收机基本流程
bind发射选:择固定的rf channel, 和 address 发送tx id接收机:择固定的rf channel, 和 address 监听, 收到了,记录 tx id发射发射机 把各channel 数据, 打包发送, 还要加上 tx id (或者 tx id 与 address 整合了) 接收机:接收数据,收到后解包,转化为pwm控制各舵机,电调
2016-02-18 11:20:35
10712
原创 如何打log 检查 Android CTS failure
跑了CTS 就需要检查出问题的地方CTS提供一些Log但可能不够用,需要自己下该CTS src再增加代码, 如何做?1)根据出错信息,找到代码位置比如提示 com.android.cts.aadb.TestDeviceFuncTest#testSyncFiles_extStorageVariable 出错通过搜索找到文件是 cts/hostsidetests/aadb/sr
2016-02-17 16:23:07
2817
原创 把简单的老Android App项目转移到Android Studio
过去写了若干Android App, 都是在eclipse中写的现在要转移到Android StudioAndroid Studio 有个 import的功能,但是我就用自己编写简单跳棋程序,实验了一下失败了所以这里谈谈手动转移的建议1)建一个空的Android项目 注意包的名称和原项目名称完全一致2)把原项目的文件 copy过来cd src/cp
2016-02-16 16:42:18
1751
原创 android studio老办法编jni
过去一直用 eclipse, 现在google的官方支持都到 android studio, 所以必须用会它以前在双核i3 win7上运行AS, 慢得如同噩梦一般由来在 ubuntu i5上运行,而后勇xming来作为xserver, UI相应还是慢得同噩梦只好全在ubuntu上运行了比较奇怪的是 AS 经常要访问网络,如果被 GFW 挡住了,就没法使用了实验
2016-02-16 14:51:15
805
原创 试用groovy
学计算机的没办法,新东西来了,只有跟上groovy 不知道goolge搞出来做啥,可能是java编程太麻烦,找一个替代品安装在 ubuntu下直接安装sudo apt-get install groovy而后运行 groovysh,这个东西不太好用比如生命变量:def str = "Hello world"要把 def去掉,否则就是声明的 local 变
2016-02-16 11:10:49
598
原创 unsigned int 相减的妙处
arduino 中定时器会清零,当我计算两个时间的间隔,是否会受到清0的影响,答案是不会的在arduino中做了试验如下unsigned int i, j=10000;void loop() { i += 10000; j += 10000; Serial.print("i:");Serial.println(i); Serial.print(
2016-01-26 15:16:29
1874
原创 编程练习:找到和最大的子序列
概念:当前位置:本算法只遍历一边,当前遍历到的位置子序列:位置连续的几个数当前子序列:当前要考虑的子序列,这里设定当前子序列是负就要舍弃临时和最大子序列:遍历没完成前,临时记录的和最大子序列,遍历完成它就是最终结果思路:首先,当前子序列为空,当前子序列和为0开始,遍历 当前子序列和 + 当前位置书,看结果是正还是负 正(或0)
2015-12-22 19:13:15
746
原创 首次运行gtest
看到 cleanfight 下面有 test/unit, 估计是做单元测试用的一个make (Ubuntu下面) 都编译了,再到 cleanflight/obj/test 生成了很多可执行文件原来 cleanflight的单元测试不是是stm32上跑了,而是在pc上跑,主要测试函数的功能找个源元件,原来是用gtest写的,下面就在 cleanflight目录下做 gtest的试
2015-12-16 16:08:31
1255
原创 Ubuntu下编译Openpilot
Openpilot 是CC3D 原生固件,下面实践如何编译生成1)首先准备 git 和arm toolchain, 参照"Ubuntu下编译 ardupilot" http://blog.youkuaiyun.com/span76/article/details/497820152)下载openpilot源代码git clone https://github.com/openp
2015-11-12 14:03:00
4056
原创 Ubuntu下编译 cleanflight
cleanflight 基于baseflight, 是支持多悬翼和固定翼飞控程序MultiWii 的代码违反很多软件工程原则,baseflight 也是,而cleanfligh 力图改善软件质量,提高可维护性。包括1)通过完善的测试实现更可靠的code, 2)更好的可维护性3)更容易加入新特性4)软件模块化更好,更易复用cleanflight 支持Naze,
2015-11-12 11:13:04
4462
原创 Ubuntu下编译 ardupilot
根据官方文档 http://dev.ardupilot.com/wiki/building-the-code-onlinux/先安装git , 而后用 git clone下载源文件1)下载源代码sudo apt-get -qq -y install gitgit clone https://github.com/diydrones/ardupilot.git(如果不想cl
2015-11-11 17:45:20
8721
2
翻译 把 MultiWii 移植到arduino-due中
原文:http://technicaladventure.blogspot.com/2014/05/porting-multiwii-to-arduino-due.htmlGitHub 在 https://github.com/HefnySco/MultiWii_DUE, 请使用 Arduino-1.5.6r2 or later 编译Due 微控板使用 SAM3X8E ARM C
2015-11-10 15:12:51
1526
原创 MPU6050 6DOF 数据读取
MPU6050 三轴加速度陀螺仪模块1)如何根据读出的值计算重力加速度官方给的文档如下:如果设置 1 (AFS_SEL=1) 量程式 +/- 2g (不是克,是重力加速度) 那么当你把MPU6050水平放置的时候,Z轴的ACC值应该接近 16384.LSB/g 是什么单位? LSB的意思是最小有效位,为数字输出方式。 就是 如果有1个g的有效
2015-11-03 14:49:03
3014
原创 android netd 笔记
只讨论netd 提供dns服务,从android 4.4 开始,android 提供基于socket 的dns服务(类似ubuntu的dnsmasq)源文件在 system/netd 下面当应用需要访问dns服务的时候,通过system/netd/client接口访问, libnetd_client中的函数被bionic动态load了(只是猜想,需要确认)netd作为单独进程启
2015-10-27 16:57:20
4652
原创 git gerrit 实践经验
用git一段时间,体验还是比较好。尤其没次改一批文件,文件列表非常清晰。和gerrit结合,diff, review 都非常方便,尤其你不需要自己手动提交到服务器有些缺点库太大,做android 开发,要下载几十G的东西如果多人改同一个目录,不是很方便。有些体验如下:1) 工作前都用 repo start dev 开始一个branch 再工作否则
2015-10-26 17:05:15
2019
原创 Arduino 试用 Digispark Attiny85
过去多用 Arduino Mini, 现在试用 Attiny 85这板子,基本就是一个7805 + Attiny 85, 当然上位机为了与Arduino 集成可能还是花了些功夫功能如下:1.支持Arduino IDE 1.0+ (OSX/Win/Linux) (最后还是用Arduino 1.65+, 因为toolchain可以直接下载)2.能够通过USB或者5v或者7-35
2015-09-24 11:07:10
10768
原创 Android SystemUI中HOME key的处理
在Android系统的nav bar 中点击home按钮,就回到HOME,他是如何实现的在view的xml描述文件,指明了key_codeframeworks/base/packages/SystemUI/res/layout/navigation_bar.xml ... systemui:keyCode="3" ...>而后再基类,K
2015-09-14 17:30:31
3200
原创 Android Looper(cpp)用法举例
在使用loop 前,我是直接使用 epoll 的,后来发现 loop 封装了 epoll, 使用起来还要更方便一点。static int event_handle(int fd, int events, void* data){ printf("==== handle === \n"); return 1;}int mMsgFds[2];int main(void)
2015-08-10 18:41:27
2434
原创 MingGW 内外中编写程序进行udp 通信
首先用python 编写一个serverimport socket address = ('127.0.0.1', 21567) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind(address) while True: data, addr = s.recvfrom(2048)
2015-07-24 11:36:44
860
原创 SDL 在 MingGW 中不支持 joystick
实验 SDL 了一个小程序,在linux 正常而后在 MingGW 编译通过gcc -I/local/include -L/local/lib -w -Wl,-subsystem,windows -lmingw32 -lSDL2main -lSDL2 得到 a.exe, 但运行卡住了,没有任何反应 (看来SDL 在MingGW主要能支持窗口显示)// http://d
2015-06-29 14:42:37
1007
原创 fltk(Fast Light Toolkit) hello world
fltk 很像一个小 qt系统,提供 小UI构件和事件循环(逻辑都在 Fl.cxx中).下面只是一个类似 hello world 的程序========= main.c =========#include #include #include using namespace std;//---------------------------------------
2015-06-15 16:03:53
1012
原创 raspberry pi 的 C 程序编写
linux 都带了 gcc, 简单程序可以在树莓派中,直接编译复杂的程序,可以用 bcm (因为芯片是 broadcom 的) 的 toolchain 来编译http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/http://raspberrypi.sta
2015-04-30 10:47:57
3037
原创 Linux 下 USB-serial 端口的使用
把USB-serial 插上会看到下面的消息 dmesg | grep tty...[167848.524563] usb 1-1.3: ch341-uart converter now attached to ttyUSB0用下面命令设置好 波特率, 就可以通信了stty -F /dev/ttyUSB0 -raw ispeed 9600 ospeed
2015-04-29 18:17:26
3375
原创 编程练习:Biorhythms
http://poj.org/problem?id=1006DescriptionSome people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical, emoti
2015-04-29 15:19:01
566
原创 编程练习:Spell checker
http://poj.org/problem?id=1035DescriptionYou, as a member of a development team for a new spell checking program, are to write a module that will check the correctness of given words using
2015-04-28 11:10:09
711
原创 ubuntu 运行 usb camera
用软件Cheese1) 插上 usb camera2) 软件中心 找 cheese 运行ref:http://www.ehow.com/how_5610857_mount-usb-camera-ubuntu.html通过 ffmpeg 捕获原来插了 usb camera 后,多了一个设备 /dev/video0 v4l2-ctl --list-devi
2015-04-27 15:24:45
6957
原创 整理源文件技巧:批量替换
批量改旧文件就是麻烦呀,我写了脚本来帮忙1)找到所有非 binary 的源文件 find -type f -exec grep -Il . {} \; 〉tochange.list2) 把含有 $Id 的一行去掉cat tochange.list | while read line; do cat "$line" | grep -v '$Id' > txt
2015-04-24 17:32:03
702
原创 使用 icsp 烧程序
使用ICSP 异味着不依靠 bootloader才烧程序http://www.arduino.cc/en/Tutorial/ArduinoISP 6pin 的 isp 应该如下:下面的文章谈到了如何uploadhttp://tutorial.cytron.com.my/2011/09/30/how-to-program-arduino-by-using
2015-04-21 14:28:30
8118
原创 试用 Arduino Due
以前都玩328P, 现在玩玩arm的板子关于板子参见:http://www.arduino.cc/en/Main/ArduinoBoardDue1)下载 arduino-1.6.2-windows,2)安装driver其driver 目录下有 dpinst-x86.exe安装后,连接 Due 的programming port ( 靠近圆电源孔孔那个)
2015-04-21 14:05:59
8073
原创 编程练习:False coin
http://poj.org/problem?id=1029The "Gold Bar"bank received information from reliable sources that in their last group of N coins exactly one coin is false and differs in weight from other coins (
2015-04-16 17:44:28
1127
gnu-linker
2013-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人