- 博客(40)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一文看懂Android APK安装的原理
Android APK 安装原理解析前言APK包的构成安装APK总结前言大家有没有想过一个应用的APK是怎么被安装到安卓手机上的,安装的本质是什么?我们知道,Windows应用程序的安装包是一个可执行的压缩包,安装的过程是把压缩包中的数据和依赖库拷贝到安装目录,再在桌面或启动栏创建快捷方式,那么安卓的APK安装过程是不是也是这样的呢?本文将为大家解答这些问题。APK包的构成首先,我看一下A...
2019-07-23 23:56:12
3431
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android世界之盘古女娲——Zygote
Zygote在Android系统中,zygote是一个native进程,是Android系统上所有应用进程的父进程,我们系统上app的进程都是由这个zygote分裂出来的。zygote则是由Linux系统用户空间的第一个进程——init进程,通过fork的方式创建的。zygote进程做了两个重要的事情:1. 不断接收其它进程的信号,随时创建子进程(即app进程)2. 创建了嫡长子 ...
2019-02-17 09:49:43
11316
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C盘剩余空间越来越小的终极解决办法!
C盘空间越来越少是Windows用户普遍遇到的问题,问题很常见,闲话不多说,直接上方法:0、当然是使用腾讯电脑管家清理垃圾,然后使用“系统盘瘦身”,但一般也是清理个几百M;1、如果使用过Apache服务,可以删除C:\Windows\Apache\logs里面的两个log文件,30多G;2、使用工具:spacesniffer,可以看出哪个文件占用大量空间,如图,哪个文件占空间大,一目了...
2018-04-08 11:19:23
98027
原创 一文看懂Java的动态代理
一文看懂Java的动态代理前言动态代理动态代理的使用场景参考文献前言什么是代理?首先,代理是一种基本的设计模式。它的形式是,用代理对象代替实际对象,从而提供额外的或完全不同的操作。举个例子,我们购买火车票,12306官网有火车票下单的操作,某抢票APP也有火车票下单的操作,我们可以在官网下单,也可以在第三方抢票APP上下单。那么,类比到代理设计模式,12306官网就是实际对象,而第三方...
2019-07-27 16:55:07
561
原创 sicily 1215 脱离地牢
做Sicily 1215脱离地牢 这一题,一直Restrict function,都快崩溃了。最后发现是内存泄露,就是new出来的东西没有及时delete导致的。具体是在广度优先搜索的时候,每找一次邻居就new出一些节点,有些节点已被visited了然后我直接忽略它们,实际上是得把它们delete掉的,还有就是pop出一个节点后,在处理完邻居之后要把这个节点delete了
2014-12-27 10:25:55
966
原创 sicily 2010 H number
解释:根据规则构造数字,而不是从头遍历一遍判断,这样可以避免很多不必要的计算。运行效率:0秒,312KB。代码如下,类似广度优先搜索:#include#include#include #includeusing namespace std;//int toInt(char c){ return c-'0'; }//char toChar(int i){ return i
2014-12-26 00:43:48
921
原创 eclipse代码补全的手动触发设置
设置非常简单,在eclipse界面中选择window菜单,选择Preferences,进入General -> Keys:然后在Command那一列找到Word Completion,如果已有绑定,则点击Unbind Command,然后将自己要绑定的那个键输入进去即可,个人喜欢下面那个键,不知道叫什么名字,哈哈,如图:
2014-01-06 14:21:21
1422
原创 fatal signal 11 sigsegv
出现了悲剧的错误:fatal signal 11 sigsegv,调了好久,在win32上跑没问题,在android上就内存访问错误退出了,原因是CCSpawn::create(...);里面的结尾没有写NULL
2013-12-04 22:29:47
1228
原创 TexturePacker中的offset
TexturePacker是一个很好的工具,可以把小图合并成大图,节省了很多内存占用,又可以方便的把图片的透明的边界去掉。TexturePacker有个两个选项:Trim和Crop,两个都是把图片的透明边界去掉,不过有区别,Trim保留了原图的信息,即原图的大小,使得开发者在用的时候觉得像是在用原图一样(实际上在保存图片时已节省了很多内存),而Crop则只是保留的切去透明边界后的图片的大小。
2013-11-12 00:32:59
3666
2
原创 关于adb server didn't ack failed to start daemon
有时出现这个问题我都试了很多方法,最后重启,有时能解决,不过很麻烦。今天我想一次性解决这个问题,所以去网上找,发现有人说5037端口被占用会导致这个问题,所以我找到了占用这个端口的进程:netstat -a -o 5037然后找到了进程“tabd.exe”把它结束了,重启eclipse,然后再DDMS上reset adb,就搞定了。
2013-09-27 14:45:20
824
原创 证明辗转相除法
假设:a÷b = k......r证明辗转相除法,即证gcd(a,b) = gcd(b,r),可以分为两个步骤:1、令c = gcd(a,b),证明 c 也是 r 的因数2、令i = b/c, j = r/c,证明 i 和 j 互质第一步易证,令m = a / c, n = b / c,那么r = a - b*k = mc - nc*k = (m-nk)*c,故 c
2013-09-11 20:19:21
891
原创 笔记
char *str = "1234abcd";和char str[] = "1234abcd";是不等价的,后者可以修改字符串的内容而前者是不行的,比如char *str = "1234abcd";str[1] = 'c';编译不会出错,但运行是会崩溃的
2013-09-11 15:04:19
504
原创 基数排序
举一个简单的例子,比如以下数组:{23,43,56,12,767,123,54}先找到数组里最大的一个数,这里是767,三位数,故要进行三次筛选,从个位数开始,依次到百位:第一次排序过后为:{12,23,43,123,54,56,767}//注意尾数相同的数的顺序,比如23和43,必须和之前的相同第二次排序后为:{12,23,123,43,54,56,767}第三次排序
2013-09-05 20:00:36
827
原创 堆排序的实现
/*堆用数组实现,起始下标为0,故父节点为n时,左孩子为2*n+1,右孩子为2*n+2*/#include#define LEN 510000#include#includevoid swap(int &a, int& b){ int t = a; a = b; b = t;}//给定一个位置,从这个位置开始调整堆void build(int num[], int pos, i
2013-09-04 20:33:22
630
转载 C++的智能指针
1、在可以使用 boost 库的场合下,拒绝使用 std::auto_ptr,因为其不仅不符合 C++ 编程思想,而且极容易出错。2、在确定对象无需共享的情况下,使用 boost::scoped_ptr(当然动态数组使用 boost::scoped_array)。3、在对象需要共享的情况下,使用 boost::shared_ptr(当然动态数组使用 boost::shared_array)
2013-08-20 21:22:24
577
原创 cocos2dx场景切换中init、onEnter、onEnterTransitionDidFinish的调用顺序
这些方法调用的先后顺序如下(使用 replaceScene 方法):1. 第2个场景的 scene 方法2. 第2个场景的 init 方法3. 第2个场景的 onEnter 方法4. 转场5. 第1个场景的 onExit 方法6. 第2个场景的 onEnterTransitionDidFinish 方法7. 第1个场景的 dealloc 方法
2013-08-14 14:39:25
1681
原创 无法打开文件“libBox2d.lib”
由于点了“清理”而出现这种情况,这个时候点一下“重新生成项目”即可,因为需要链接的.lib还没有生成,重新生成即编译所有.cpp,生成需要的.lib文件
2013-08-14 14:39:21
2997
原创 C++拷贝构造函数与重载‘=’的区别
同样用到等于号“=”初始化的时候调用的是拷贝构造函数 Number(const Number& n)而赋值的时候调用的是 Number* operator = (const Number& n)
2013-08-14 14:39:18
1037
原创 读者写者问题中写者优先的想法
//写者部分do{ wait(WMutex);//互斥,防止多个进程同时访问writeCount变量 writeCount++; if(writeCount == 1) wait(read); signal(WMutex); wait(wrt);//写写互斥 //WriteCode... signal(wrt); wait(WM
2013-08-14 14:39:16
819
原创 dynamic_cast
dynamic_cast 用法:dynamic_cast ( expression ) 该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void *; 如果type-id是类指针类型,那么expression也必须是一个指针,如果type-id是一个引用,那么expression也必须是一个引用。 dynamic_cast主
2013-08-14 14:39:14
489
原创 改变一个精灵的纹理的时候
改变一个精灵的纹理的时候不要用setTexture(newTexture)的形式,要用initWithTexture(newTexture); 不然会有很多值没有初始化,使得效果不是我们想要的,谨记!
2013-08-14 14:39:12
682
原创 一个无法解析的外部命令的一种情况
我在类Myb2World中声明了一个私有的静态变量:static b2World* world; 然后再在类的定义中使用了这个变量,然后就出错了。 改错:要.cpp文件中加上这一句 b2World* Myb2World::world = NULL;
2013-08-14 14:39:07
2777
原创 cocos2d-x粒子注意事项
在设定startColor和endColor时,一定要自己指定一个Var,否则引擎会自己弄一个值,效果就不一定是自己想要的了,用CCLog输出未定义的startColorVar和endColorVar如下:startColorVar{-431602080.000000,-431602080.000000,-431602080.000000,-431602080.000000}:EndColorVa
2013-08-14 14:39:05
724
原创 cocos2d-x粒子显示不了
initWithTotalParticles(200)要写在new CCParticleSystemQuad()之后,不能写在setTexture之后,不然显示不了
2013-08-14 14:39:02
860
原创 CCSpriteBatchNode的使用
先参考这个:http://www.cocos2dev.com/?p=331使用CCSpriteBatchNode时,所使用的贴图必须是同一张图片,意思是CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create("t.png");里面的“t.png"要和batchNode->addChild(picture)里的picture是同一张图片,同一
2013-08-14 14:38:58
680
原创 C语言“#”的使用
在cocos2d-x中有这么一段代码:#define CC_PROPERTY(varType, varName, funName)\protected: varType varName;\public: virtual varType get##funName(void);\public: virtual void set##funName(varType var);其中get##funName(
2013-08-14 14:38:56
558
原创 用Dev C++编译出现了instantiated from here这个错误
当用STL的里的sort,或者nth_element时,在自己写的结构体里面重载大于号或小于号的函数后没有写上const,则会出现这个错误,正确的做法是:bool operator return ...;}//如果写成了以下形式就会出现错误bool operator return ...;}
2013-08-14 14:38:53
2796
原创 多层排序
排序时不止根据一个因素的大小来排,而是有多个因素,每个因素之间有优先级,比如说给一个班的学生排序,高的排前面,如果一样高的则体重大的排前,如果身高体重一样的则年龄大的排前。 可以用一个结构存一个学生的信息:身高、体重、年龄,然后重载小于号'',这样重载:struct Student{ int height, weight, age; bool operator if(this->heig
2013-08-14 14:38:51
753
原创 HTML中列表注意事项
、之间只能是项,不能有其它的标签,若有其它的标签则要放在里面如 Forrest Fump(IMDB) Director Robert Zemeckis Genre Comedy/Drama/Romance(more) Tagline The world will never
2013-08-14 14:38:49
774
原创 集合的求差集,用set_difference(...)
首先#include集合的意思其实可以是很多容器,比如数组,set,vector等等这样调用: set_difference(a.begin(), a,end(), b.begin(), b.end(), c);其中c可以是一个数组,存放a中有的而b中没有的数,函数的返回值是c的结尾指针例如:int a[5] = {1,2,3,4,5};set S;S.insert(1);S.insert(2);
2013-08-14 14:38:46
1321
原创 STL中优先级队列的使用priority_queue
首先,#include,#include一、对于基本类型:然后,如果是要大的数优先级高,那么这样声明:priority_queue, less > PQ;如果是要小的数优先级高,那么这样: priority_queue, greater > PQ; 其中的vector用list好像会出错,具体原因再去了解插入用push(1);取出用top();弹出用pop();二、对于结构:方法一:如果不是基本类
2013-08-14 14:38:44
688
原创 [转]\t 冯巩的155句经典语,太有才了,这才是真正的幽默!
1 姑娘们啊!哪有那麽多白马啊?找个驴凑合得了,别等到有一天驴都被抢没了,剩一堆骡子...2 所谓美女,三分长相七分打扮、所谓气质,三分才气七分装蒜、所谓温柔,三分忍让七分压抑。3 下辇子要做筷子,就不孤单了!4 你的话,我连标点符号都不信。5 此处不留爷,自有留爷处。处处不留爷,爷回家做家务。6 铁公鸡还会留点儿铁锈呢,你根本就是个不锈钢公鸡!7 陪我一起数星星吧,你智商低你就数月亮吧!8 我太
2013-08-14 14:38:42
982
原创 [转载]android动态布局方法总结
//绝对布局AbsoluteLayout abslayout=new AbsoluteLayout (this);setContentView(abslayout);Button btn1 = new Button(this);btn1.setText(”this is a button”);btn1.setId(1);AbsoluteLayout.LayoutParams lp1 =new Ab
2013-08-14 14:38:40
709
原创 ANDROID中LAYOUTINFLATER的使用
Inflater英文意思是膨胀,在android中应该是扩展的意思吧。 LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button,TextView等)。 (0)她可以有很多地方可以使用,如B
2013-08-14 14:38:38
474
原创 android Theme使用总结
今天对api中style下的theme整个摸了一遍。我将api中theme分为两种类型来实验;一种是api Level为11的,一种是11以下的。level为11的用的是3.0的模拟器,11以下用的是N1,2.3.3的系统。这里我是统一将theme写在AndroidManifest.xml中定义,如下图:先总结level为11以下的theme:1、Theme:它的意思为默认状态,即如果theme这
2013-08-14 14:38:35
498
原创 【转载】java中final的意义
1、如果一个数据既是static又是final,那么它会拥有一块无法改变的存储空间。 2、final data: 当final用于基本数据类型时,final让其值(value)保持不变,但是当用于object reference时,final仅让reference保持不变。也就是说当reference一旦被初始化用于代表某个对象时,便再也不能改变指向另一个对象,但对象本身的内容确实可以改变的。f
2013-08-14 14:38:33
509
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人