摘要:Android Studio 中关于NDK编译及jni header生成的问题
阅读全文
摘要:服务器推送技术,目前应用广泛的大部分都是对xmpp协议的在此封装。
没接触过xmpp?在linux用一些im客户端,默认都会让你添加支持xmpp协议的账户,比如icq、msn等等,另外,不都说qq也是基于xmpp的么,包括android下gmail、gtalk等等也都是基于xmpp协议的。
下面对android下服务器推送技术的一个封装androidpn进行简单的分析,以后还会对xmpp协议的android封装smack进行分析学习。
阅读全文
摘要:最近重写了以前那个atomqq,后来发现自己在整体的设计上水平还是很欠缺,一个人搞也比较吃力,毕竟是一步步分析分析又分析webqq3,所以决定先暂时放下,学学python和架构方面的东西。 累了,也是时候停下来学学了。这是atomqq目前的进度:http://code.google.com/p/atom-qq/ <-源码在这下面是目前进度的程序截图:登陆界面主程序,群列表在右面,左右滑动近期会话,一个向上弹出抽屉群聊天,黄色背景为自己发送的消息写到这里时,突然感觉累了,也有点力不从心了,就先这么放放吧。
阅读全文
摘要:上次写过一篇文章 抛砖引玉 之 谁动了我的隐私(android用户隐私窥探) 描述如何读取系统log缓冲区但还存在权限提示问题。这次来个稍微好点的,真正的0权限上传数据同上次讲的一样,虽然大部分用户在安装app时对权限警告视而不见,但相信以后用户会对权限问题越来越重视的。这次咱们先真正的来一次0权限上传热热身。一、原理首先利用的还是那个开机启动bug。然后,在手机锁屏时上传数据。如何上传数据呢,为了避免权限咱们得瞒天过海。我们知道,在Intent转向的时候,可以转到标记为ACTION_VIEW的activity,而浏览器都有这个标记,可以传一个uri过去。soga,说到这里,,明白了吧。就是使
阅读全文
摘要:OCR属于CV的范畴,也就是计算机视觉,目前来看,除了opencv这个龙头老大,也就是hp开发的tesseract比较好用,虽然年头比较长了,但现在归google维护并托管在google code上了。现在有android版本的地址:http://code.google.com/p/tesseract-android-tools/这个版本得自己git 三个库 leptonica tesseract libjpeg ,我自己是编译成功了,但测试的时候native层总是crash。于是发现了tess的android的另一个分支 tess-two推荐linux上编译一、下载&编译1、首先下载
阅读全文
摘要:发展 * 创新2012 元旦,参加北京创客空间的跨年活动,地点位于青公馆,属于青年志的地盘。活动的内容就是与mit(米国麻省理工)的miter(麻省理工的黑客/创客)们交流与分享经验。这是个老胡同的四合院,艺术范儿浓厚,与会的十来人却都是一些geeker,技术狂热爱好者。josh,mit 的创客骨干,从computer hack到hardware hack无所不能,他正在介绍mit的机器人项目cathy,mit的miter成员,很有意思的一个妹子。正在介绍mit的某个机器人竞赛这次会议给我的冲击很大,不是mit的人有多nb,也不是国内的圈子有多落后。对于创新,老外的思维是把一件事想的很简单,敢
阅读全文
摘要:用户的隐私永远是第一位的,用户的隐私也是最值钱的。最近各大门户相继被泄露。。。保管好自己的密码就行了这里我就扯一下android下面搞用户隐私的方法,也算是android的一个疏忽。但最主要的,还是用户在安装apk时对权限警告的无视,就犹如我们所有社区的密码设为相同一样。罪魁祸首就是logcat。以及一个权限检测的bug.1、开机启动 程序如何开机启动?那就是接受一个关于开机的广播,具体流程是这样的,首先在 清单文件 声明一个权限 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED&q
阅读全文
摘要:上篇博文,介绍了一种安卓开发中程序插件化的方法,想想应该可以搞的更方便些,于是花了4天时间把框架做出来了,希望能对大家有用。android-application-plug-ins-frame-work安卓应用程序插件化开发框架 -AAP Framework介绍这个框架的初衷,是为了方便让程序模块化、插件化,将一个apk应用拆分为多个apk。不明白这个插件化、模块化是怎么回事的话,可以看看腾讯微信的安卓客户端中的插件配置。在这里我会以腾讯微信为例,如何使用这个框架。 (腾讯微信并不是真正的插件化,它是伪的,插件并非与它的主程序分离开,结果就是每次插件的更新,都必须以整个程序的更新为代价)都能干
阅读全文
摘要:框架已经放出:android-application-plug-ins-frame-work安卓应用程序插件化开发框架 -AAP Framework 在android的项目开发中,都会遇到后期功能拓展增强与主程序代码变更的现实矛盾,也就是程序的灵活度。 由于linux平台的安全机制,再加上dalvik的特殊机制,各种权限壁垒,使得开发一个灵活多变的程序,变得比较困难,不像pc平台下那么容易。 瞅瞅elipse的插件,瞅瞅360的插件,在android下,我们一开始很难写好一个主程序,然后通过插件机制来应对以后的功能拓展,于是程序变得不那么灵活多变了。 比如一款android下的安全软...
阅读全文
摘要:最近项目用到,记录一下。 首先,让j2ee那帮兄弟把服务端Hessian实现的接口类以及这个接口类公共方法所传入、返回的那些需要序列化的类给自己,copy也行,打成jar包也行。 接口相关的类的包名和类名也必须得和服务端的相同。 剩下就是客户端加入 hessdroid这个包了,android的一个第三方Hessian库。 调用很简单,下面是示例代码:HessianProxyFactory factory=new HessianProxyFactory();//如果需要用户验证的话//factory.setUser("uname");//factory.setPassword
阅读全文
摘要:第三天,google说,伊甸园(linux世界)要被隔离,于是便创造了亚当(Adm)与夏娃(Eve),称它为zygote和system_server --xxx 第二天,init跑完了,它对于android系统,最重要的,就是启动了zygote和system-server,谁是Adam谁是Eve? 从分析init.rc来看service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server --start-system-server只是个参数。 分析源码 啊,原来夏娃(zygote)
阅读全文
摘要:第二天,google说,荒芜要被开垦,系统便运作了,它是linux。 --xxx 荒蛮大地就要变得肥沃,linux已经运行起来了。。。。 linux就不多讲了,这里只讲讲被google大刀阔斧改了内核后的linux。 第一天最后,内核init已经干完了自己的事,把控制权交给了第一个用户级进程,也叫做init。 想知道这个init干了什么事,我们只能看看源码,不贴代码,这里只说说它干了什么。 (system/core/init/init.c -->main)一、清空umask 也就是设置缺省权限,这里设置为0,umask为0000的话,就相当于chmod中的0777,经常使用linux对于
阅读全文
摘要:第一天,google说,要有电,于是电流涌向了电路板,涌入了arm处理器,于是arm运作了。 --xxx 嵌入式世界诞生之出,世界是荒蛮的,电流涌向各个芯片,各种处理器等待着唤醒。 arm觉醒了,开始审视自己。。。。 ---------------下面内容可能有误,请指正------------------- 人们叫他Bootloader,和PC中的BIOS是哥们,负责芯片各个端口的初始化,以及cpu时钟等等设置。 在手机中,bootloader一般就是刷机人口中的底包(并不全是,第二天会说),以摩托为例,买到手机后发烧友们总会首先刷底包,什么北欧、港行、巴西什么的底包。首先下载下来100~.
阅读全文
摘要:某些安全管理类具有程序锁功能,大致功能是这样的:安全管理程序列出系统中的所有应用,用户选定一些想锁定的程序,并设置好密码,这样以后,再运行那些程序会跳转到一个权限页面,要求输入密码访问,或者不访问并推出。 如何实现呢? 第一个想法就是写一个service监测activity 栈,如果栈顶有更改,则判断其是否为受保护的程序,是,就intent转向自己定义的认证授权activity;否,则什么都不做。找来找去,sdk没有提供某个回调方法或事件、广播之类的api,只能自己一直while中检测。 于是寻找第二种方法,在源码中找所有service和aidl,也没发现callback或者broa...
阅读全文
摘要:要做一个im软件,消息收发的即时性就是灵魂了,我在atomQQ中,使用了service来进行对服务器的消息轮询(-_-!! 除了service还能用啥呢。。)这里首先说明webqq3的消息轮询机制通过抓包发现,webqq接受各种即时消息是通过这个posthttp://d.web2.qq.com/channel/poll2这个地址实现的POST http://d.web2.qq.com/channel/poll2这个提交的超时时间要长,一定要长,服务器是这样给你推送消息的:* 客户端首先post上面那个地址,并在一个长时间内等待服务器返回* 服务器检查是否有没有推送出去的消息,如果没有,而且打到
阅读全文
摘要:在list当中,如果自定义item中的内容是从网络获取的,并且要求较高的实时性,那么就需要异步加载,这样,只需要显示在屏幕上的item以及即将被显示的item去获取网络资源,不至于对网络访问占用很大的带宽,在移动应用中尤其要这么做。下面是我实现item加载头像、昵称|备注名称、个性签名的异步加载方法。首先,list是与adapter适配器绑定。ListadAdapter与ExpanedListAdapter当中有几个必须实现的方法:public Object getChild(int group, int child)public long getChildId(int group, int
阅读全文
摘要:首先看效果这里,为了方便逻辑与ui分开,在好友列表与群列表使用Activity,而不是view。最后,通过 Window 的 .getDecorView();方法获得view,具体代码如下:onCreate(){........//好友列表意图 Intent ittFriends=new Intent(this,FriendListActivity.class); //这里就获取到了viewViewGroup friendsView=(ViewGroup) (m_ActivityManager.startActivity("", ittFriends)).getDecorV
阅读全文
摘要:在退伍之后本来出于兴趣,研究一下很云很云的webqq,分析了两个星期协议,终于搞出来,再打算提高提高andrdio水平,就想做出来这个东西,期间经历了一次webqq2协议向webqq3协议的升级,真让我头疼,最终还是搞定了,现在完成70%了,把之前做过的事记录一下。先看看界面:图标:这个戴红领巾的企鹅就是登陆界面,放个q娘的logo吧,由于服务器的原因,有可能会输入验证码。 主界面,qq好友与群聊天界面:后面会单独写出各个部分具体的细节实现atomQQ 笔记 之 好友列表与群列表atomQQ 笔记 之 列表元素的异步加载atomQQ 笔记 之 聊天消息、状态消息等各种消息的轮询
阅读全文
摘要:腾讯webqq的登录时,只需向服务器提交1次密码和验证码,之后服务器会返回两个会话id,就像令牌一样,每次ajax向服务器拉取信息时,都会携带这两个令牌,直至用户注销登录或意外退出。上次曾把密码与验证码混合MD5加密的js脚本提取出来,这里再贴一下。md5.jsvar chrsz=8;var mode=32;var hexcase=1;function preprocess(A){ var B=""; B+=A.verifycode.value; B=B.toUpperCase(); A.p.value=md5(md5_3(A.p.value)+B); return tru
阅读全文
摘要:Layout--布局常用的的就是线性布局:<?xml version="1.0" encoding="utf-8"?><!--这是个线性布局--><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <!--这个属性规定它是纵向方式排列控件--> android:orientation="vertical" <!--前面加了layout_的属性,就是相对于父控件的属性,这里是填
阅读全文