自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何阅读Android framework层源代码

介绍了如何阅读Android Framework层代码

2017-03-12 17:51:58 3647

原创 如何断点调试第三方 Gradle Plugin

按照下面这个视频我们已经可以连接到 Gradle 进程去 debug 了,但是这个视频里还是没有解答我一直以来的一个疑惑,就是我怎么去调试一个第三方的 Gradle 插件: 如何单步调试 Gradle 脚本? 在上一步中我们已经可以断点了,但是无法跳转到第三方的 plugin 源码当中,那么我们只要把源码导入就好了。以我们常用的 kotlin-android 这个 plugin 为例,

2021-08-17 20:26:31 735

原创 jadx-gui 重命名功能

jad-gui 是大家常用的一款反编译工具,其中有些小使用技巧可以帮助大家更快的“学习”知识。安装方法参考项目GitHub主页重命名最新的 1.2.0 版本支持了方法、类、字段的重命名,这是一个非常有用的功能,之前反编译出来的都是混淆后的名字,非常让人难以理解,虽然也有自动重命名的功能,但结果同样缺少可读性。新版本中的重命名支持单独自己命名,使用十分方便,下面看看怎么使用吧:...

2021-07-19 20:46:59 582

原创 重新造轮子之仿手势下拉关闭图片效果

现在很多 App 上查看图片时都有手势下拉关闭图片的效果,个人非常非常喜欢这种交互,就想也仿制一个。 在 GitHub 上找到一个现成的 repo:MNImageBrowser 已经实现了相应的效果,这个库设计的挺不错的,也有很丰富的定制 API,不过仔细看过代码以后发现一个问题,图片切换用的是 ViewPager,ViewPager 在展示大量图片时有发生 OOM 的风险,虽然也是有对应解...

2018-08-18 17:03:11 1946

原创 Handler 中的 sendMessageDelayed

一个Handler的消息队列中只有两条消息,第一条是一个延时100ms的消息,第二条是普通消息,这时候取消息的流程是怎么样的?

2018-01-03 22:22:43 5291

原创 这次我真的懂AsyncTask了

分析了AsyncTask 线性执行与并行执行的区别

2017-11-26 11:40:21 521

原创 TaskRecord、ActivityRecord 和 ActivityStack的关系

分析 TaskRecord、ActivityRecord 和 ActivityStack的关系

2017-06-25 16:59:31 2212

原创 AIDL 使用总结

最近在看《Android 开发艺术探索》,其中对AIDL的讲解是我看过所有文章中最详细、全面的,现将其总结一下。

2017-06-13 15:19:55 561

原创 repo和Git的关系

任何一个学习Android开发的开发者如果想要深入学习Android,一定要看Android源码,网上关于下载Android源码的教程有很多,如果你已经翻墙了,你可以直接参考Google官网的教程或者老罗最新出的教程,如果你还没有翻墙,你可以用清华大学的Android源码镜像。我一开始没有用他们所推荐的Ubuntu下载,而是在听闻Windows 10专业版里内置了一个Ubuntu子系统以后,我尝试用

2017-02-26 21:41:19 42755 7

原创 Android 避免2个相互关联的 EditText 死循环

起因最近在做一个汇率转换的App练手,界面上会有两个相关联的的EditText,改变其中一个的值,另一个也会随之改变。对于这个问题最简单的思路就是为每个EditText附上addTextChangedListener,并实现TextWatcher,在afterTextChanged中去修改另一个EditText的值,但这种实现方式会造成死循环。仔细想想,更改EditText A的时候会触发TextC

2017-02-25 21:47:35 2116

原创 Android MediaProvider详解(基础篇)

我们都知道Android有四大组件,Activity、Service、BroadcastReceiver、ContentProvider。MediaProvider就是Android系统中的一个数据库,类似的还有TelephonyProvider、CalendarProvider、ContactsProvider,这些数据库的源码都在/packages/providers/目录下。其中MediaPr

2017-02-25 21:46:26 14346 2

原创 线性表之多项式乘法

多项式乘法 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 298            测试通过 : 131 描述 线性表是一种最简单、最基本,也是最常用的数据结构,其用途十分广泛,例如,用带表头结点的单链表求解一元整系数多项式加法和乘法运算。现给两个一元整系数多项式,请求解两者的

2014-11-23 21:22:13 1618

原创 Python写的汉诺塔问题

汉诺塔 (http://baike.baidu.com/view/191666.htm) 的移动也可以看做是递归函数。我们对柱子编号为a, b, c,将所有圆盘从a移到c可以描述为:如果a只有一个圆盘,可以直接移动到c;如果a有N个圆盘,可以看成a有1个圆盘(底盘) + (N-1)个圆盘,首先需要把 (N-1) 个圆盘移动到 b,然后,将 a的最后一个圆盘移动到c,再将b的

2014-11-13 21:18:17 4797

原创 参赛选手身高问题II

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:485            测试通过:51描述2013“华为杯”南京邮电大学大学生团体歌唱大赛即将在南邮举行,本次大赛由南京邮电大学大学生就业与创业指导中心主办,南京邮电大学华为俱乐部(Huawei Club)和南京邮电大学学生职业发展协会(SCDA)联合承办,华为

2014-06-21 16:31:04 962

原创 比赛现场气氛营造问题II

时间限制(普通/Java):5000MS/15000MS          运行内存限制:65536KByte总提交:178            测试通过:53描述在2013“华为杯”南京邮电大学大学生团体歌唱大赛组织工作中,为了营造比赛现场活跃气氛,大赛组委会原计划为每位观众发放相同件数的OLED多彩荧光棒,但经过这几天的调研发现,上述计划方案缺点较多,所以现在决定购买普通的L

2014-06-21 11:09:01 1540

原创 MyBatis中如何实现两个外键指向同一个类

在运用MyBatis实现持久层的时候,我发现了一个问题,那就是如果一张表中有

2014-05-20 10:30:56 1233 1

原创 华为上机题,循环报数

题目我有点记不清了,就是先输入一串这样的字符串,每个字符之间以空格隔开:3 a b c d e f g h i第一个数字m,后面的字符每数m个,就输出,输出后从序列中删除,然后循环输出:c f i d h e b g a。题目有个提示是运用循环链表。#include #include #include using namespace std;typedef s

2014-03-24 21:19:10 1528

原创 判断两数是否互质

#include using namespace std; int is(int a,int b){//辗转相除法求出最大公约数 int temp=0; while(b!=0){ temp=b; b=a%b; a=temp; } if(a==1) return 1;//如果最大公约数是1,那么两数互质 else return 0;}int main(){

2013-05-12 21:12:32 8122

原创 String类的应用之统计特定字符个数

#include #include using namespace std;int main(){ int i=0,n,sum_s=0,sum_t=0; cin>>n; string str; for(i=0;i<=n;i++){ getline(cin,str);//关键点,取整行字符,包括空格 int j=0; while(str[j]!='\0'){ i

2013-05-10 22:25:39 974

转载 使用C++编写的查找字符子串并替换

#include #includeusing namespace std;char* replace(const char* str,const char* sub1,const char* sub2,char* output){ char* pOutput=NULL; const char* pStr=NULL; int lenSub1 = strlen(sub1); int

2013-05-08 20:37:03 1125 2

转载 字符串反转

#include #include #include #include using namespace std;const char* reverse(const char* s1,const char* token){ stackstack1; const char* ptoken=token,*head=s1,*rear=s1; assert(s1 && token);//

2013-05-08 20:35:01 553

转载 判断素数

#include#includeusing namespace std;int test(int t){ int i; if(t<=2) return t==2; if(t%2==0) return 0; for(i=3;i<=sqrt(t);i+=2){ if(t%i==0) return 0; } return 1;}int main(){ int i=0,n,

2013-05-02 16:40:06 454

原创 单链表应用之多项式加法

#include #include #define MALLOC(s) (struct polyNode *)malloc(sizeof(*s))struct polyNode{ int xs; int zs; struct polyNode *link;};int xs,zs;int tag=1;void output(struct polyNode *root){ /

2013-05-01 21:52:03 761

原创 c编写的大数计算

以下程序是为了计算1000位以内的正整数加法,我们都知道,即使是float或者double也到不了1000位的正整数,所以我们就不能使用传统的数据类型的简单相加,我使用了字符串来计算和表示。#include #include #include int main(void){ char a[1000],b[1000],c[1001]; int i,sum,n=0,len,len_a,

2013-04-29 10:02:31 598

原创 使用sizeof计算类对象所占空间大小

第一段代码:#include using namespace std;class s{ char c1; char c2; int a;};int main(){ cout<<"sizeof(s):"<<sizeof(s)<<endl; system("pause"); return 0;}第二段代码#include using name

2013-04-20 15:19:10 1208

转载 如何链接宏参数

代码如下:#include #define STR(s) #s#define CONS(a,b) (int)(a##e##b)int main(){ printf(STR(vck)); printf("\n"); printf("%d\n",CONS(2,3)); return 0;}解析:在本程序中,使用#把宏参数变成一个字符串,用##把两个宏参数贴合在一

2013-04-16 13:49:52 1031

转载 C语言控制台的数字时钟

转自:http://hi.baidu.com/csxwczj/item/68cd6e0f056da6eaf55ba67f/*TC2.0编译*/#include #include #include #include #include void time_box(int start_x,int start_y) //时间框体

2013-04-07 22:04:50 3923

转载 堆栈实现迷宫出路(C语言)

#include #include #define TRUE 1#define FALSE 0#define step 54#define EXIT_ROW 8#define EXIT_COL 5struct element { short int row; short int col; short int dir;};typedef struct element el

2013-04-06 13:10:48 1586

转载 稀疏矩阵的转置操作及其乘法操作

代码如下:#include #include #define MAX_COL 20#define MAX_TERMS 50#define EXIT_FALLURE -1struct term{ //稀疏矩阵的单个元素 int row; //该元素所在行 int col; //该元素所在列 int v

2013-03-26 13:23:10 1044

转载 递归实现排列组合

(置换)给定n大于等于1个元素的集合,打印这个集合所有可能的置换。我们通过观察集合{a,b,c,d},得到生成所有置换的简单算法,以下是算法的构造过程:(1)       a跟在(b,c,d)的所有置换之后。(2)       b跟在(a,c,d)的所有置换之后。(3)       c跟在(a,b,d)的所有置换之后。(4)       d跟在(a,b,c)的所有置换之后。

2013-03-18 20:10:19 684

vhdl编写的电子钟

1、该程序可以实现时钟走时和校时 2、一个键控制模式(走时、校时),3个按键分别对应秒,分,时,按一下+1 3、上实验板的时候,重新选择芯片和管脚就可以了~

2011-04-18

空空如也

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

TA关注的人

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