- 博客(22)
- 收藏
- 关注
原创 如何反编译Android APK?这可能是最有效的方法
初识:我们都知道APK是Android应用的后缀,即AndroidPackage,我们通过Android Sdk将我们的工程编译成一个可在手机上执行的安装包,其实就是一个压缩文件(.zip),通过unzip可以解压。而每个Android应用在手机上的执行其实是通过分配一个Dalvik虚拟机来执行的,Dalvik虚拟机的可执行文件是.dex文件,那么这个.dex文件怎么生成的呢?首先
2017-07-21 09:33:02 304
原创 一款轻量级android备忘录,支持闹钟提醒
一款轻量级的Android备忘录,简洁实用,适合Android入门新手当做学习的材料项目地址:点击打开链接喜欢的可以多多star,多多益善 项目结构:代码量相对来说不是很大,建议新手可以拿来练手
2017-07-01 11:54:30 7116 5
原创 Android Gradle Build Error:Some file crunching failed, see logs for details解决办法
Log: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:mergeDebugResources'. > Error: java.lang.RuntimeException: Crunching Cruncher ic_defaul
2017-07-01 11:30:40 271
原创 如何优雅的使用Retrofit、Rxjava、Butterknife、Material开发一款MVP模式的新闻+天气预报+妹子的Android app
MVP:一款结合Retrofit+Rx+ButterKnife+Glide+Material的综合阅读类app项目地址:https://github.com/qypcyj/MVP项目介绍:这个app使用了现在较为流行的网络请求框架(Retrofit),注解绑定框架(ButterKnife),异步编程框架(Rxjava),图片加载框架(Glide),并且采用了MVP模式的设计模式。功能主
2017-06-24 19:45:09 382
原创 RecylerView实现下拉到底加载更多数据
写代码之前,先得思考一下,我是这样想的,监听item的位置,如果是滑动到最后一项,触发加载更多的事件,所以难点是如何监听到滑动到最后一项item?强大的RecylerView已经为我们提供了类似的方法:通过RecylerView的布局管理器mRecylerViewLayoutManager.findLastVisibleItemPosition()就可以得到最后一项的position具体请
2017-06-22 22:40:58 324
原创 RecylerView:no adapter attached;skipping layout
最近的项目中遇见这个Bug,网上论坛各种方法都有,各种原因都有,综合一下,一般只要布局被正确初始化,给recylerview设置过adapter,如果还是有问题的话,估计是adapter没有拿到数据。我的原因就是因为,接口获取数据失败,adapter拿不到数据。
2017-06-15 17:23:01 328
原创 ButterKinfe.bind(this) @BindView时出现NullPointerException
ButterKnife版本 8.4.0,@BindView会出现空指针异常,然后我把@BindView换成了findViewById还是报错网上逛论坛发现,ButterKnife 8.0.1的很多使用者都会出现这种错误,究竟为什么会出现这种错误呢?原因貌似是我们只是简单的在build,gradle添加了声明compile 'com.jakewharton:butterkni
2017-06-12 14:35:26 1919
原创 Android singleInstance导致的问题及解析
关于四种启动模式的分析可以参考下这我之前写的 “Android Activity4种启动模式的详解”。singleInstance(全局单例模式)该模式具备singleTask模式的所有特性外,与它的区别就是,这种模式下的Activity会单独占用一个Task栈,具有全局唯一性,即整个系统中就这么一个实例,由于栈内复用的特性,后续的请求均不会创建新的Activity实例,除非这个特殊的
2017-06-06 21:42:04 7760 1
原创 Android Activity 4种启动模式的详解
众所周知,在android系统中是通过任务栈来管理我们的Activity的。Task是抽象的概念,指带了一组Activity,它们为实现用户的某个操作目的而聚在了一起,可以来自不同应用。Android系统下,当用户为了完成某一个功能可能需要进行多个Actvitiy间的跳转才能达到目的,这些Activity的跳转序列就被Android抽象成了一个Task。而这一组Actvitiy实例都被放到了同
2017-06-06 20:31:15 327
原创 WebView更改错误显示页面之WebChromeClient
最近项目中UI提了一个小要求自定义WebView的错误显示页面,于是上网查资料后发现要在WebViewClient的onReceivedError()的方法里面进行修改like thismWebView.setWebViewClient(new WebViewClient(){ @SuppressWarnings("deprecation") @Override
2017-05-20 20:27:32 682
原创 PullRefreshLayout+WebView实现下拉刷新
PullRefreshLayout:跟SwipeRefreshLayout功能差不多的一款下拉刷新控件。项目地址:https://github.com/baoyongzhang/android-PullRefreshLayout使用的方法跟SwipeRefreshLayout类似。首先在xml文件中定义,包裹需要下拉刷新的view,listview、RecylerView、
2017-05-19 20:40:22 1134
原创 Gradle error:cannot invoke method buildToolVersion on null object
如果你在Android Studio中遇见这种情况,打开你的build.gradle文件,如果是这样或者是这样解决方案:Move yourbuildToolsVersionstatement to the next line。targetSdkVersion按本或者buildToolsVersion写在如下这样:,不要写成一排就行了。
2017-05-19 20:26:05 4435 1
原创 项目中遇见的微信分享失败bug
由于现在的项目是之前一位负责人留下的,之前集成的微信分享,都可以用,然后到我手里用不了了。纠结了一下午,发现之前去微信开发者平台上注册应用的时候填写的应用签名是上一位负责人编译的版本,到了我电脑上编译过后自然无法使用。解决方法:在android studio下Build->Generate Signed APK对应用进行打包签名,怎样获取我生成的apk的签名呢?下载微信提供
2017-05-19 20:17:24 585
原创 java 实现直接插入排序
public static void sortAndwrite(int a[]){int n=a.length-1;int temp,j;for(int i=1;itemp=a[i];j=i-1;/* * 这个Bug我找了好久mdzzwhile(a[j]>temp && j>=0){a[j+1]=a[j];j=j-1;a[j+1]=temp;}*/
2016-11-07 23:19:59 191
原创 java实现快速排序
public static void Quick_sortAndWrite(int arrays[],int start,int end) {// TODO Auto-generated method stubif(start>=end)return;int i=start,j=end;int l=i;int temp=0;while(i/*这里要先判断数组下边
2016-11-07 23:18:20 240
转载 Android AndroidManifest详解
每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下。它定义了该应用对于Android系统来说一些非常重要的信息。Android系统需要这些信息才能正常运行该应用。Android程序清单文件主要具有下面作用: · 它给应用程序Java包命名,这个包名作为应用程序唯一标识符。
2016-11-07 21:35:03 513
转载 关于eclipse中配置svn插件,亲测有效。
09 年写过一篇类似博客《linux 下集成 svn 至 eclipse 全过程》,虽然插件的版本有些老,但是也可以参考一下。 之所以又写一篇,原因是新近的 Eclipse SVN 插件不再支持 SVN Connector 一起安装,需要我们自己另外安装。 本文基于 Eclipse Luna 版本(eclipse-java-luna-SR1-win32-x86_
2016-07-08 19:31:12 348
原创 java实现通讯录Gui
一,界面类package gui;import java.awt.*;import java.awt.event.*;import javax.swing.*; class AddressBookUGI extends JFrame implements ActionListener { // 面板JPanel panel = new JP
2016-05-08 23:35:48 5639
原创 java获取指定连接上的图片并保存到本地
package 百度首页; import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.
2016-05-08 23:34:39 1453 1
原创 java简单计算器Gui
package 计算器;import java.awt.Window;import java.awt.*;import java.awt.event.*;import javax.swing.*; class CalculatePanel extends JPanel{ boolean start; String lastCommand="=";
2016-05-08 23:33:40 3591
原创 类对象数组以及排序问题
package java作业;import java.util.Arrays; class BankAccount implements Comparable{ //实现了Comparable接口后可以调用Arrays.sort方法 double money; String BankNum; BankAccount(double money,String BankNum)
2016-04-26 22:02:01 355
原创 Java笔记
一.object类:所有类的超类1.object.equals(); 比较两个对象的引用是否相等2.getClass()返回对象的类3.hashCode()方法:散列码,对象导出的一个整型值。String s="ok"; String t="ok"; s的散列码跟t相等 。字符串散列码是由内容导出的Stringbuilder sb=new String(s); Strin
2016-04-14 18:55:12 251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人