Android
阿里安
简书:https://www.jianshu.com/u/79a88a044955
Github:https://github.com/coding-dream
展开
-
Android 阻止反编译和 如何反编译重写打包
防止反编译 2.3版本以上在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”可以对代码进行混淆,反编译后是很难看懂的。 2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可。反编译 1.用apktool 把apk–> 资源包(java代码变成sm原创 2015-10-01 19:32:32 · 836 阅读 · 0 评论 -
在Android Studio中有六种依赖
Compile,Provided,APK,Test compile,Debug compile,Release compileCompilecompile是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中。ProvidedProvided是对所有的build type以及favlors只在编译时使用,类似eclipse中的external-libs,只参与编译,转载 2016-08-03 16:08:22 · 1157 阅读 · 0 评论 -
Gradle打包APK的一些小技巧和productFlavor配置
本文转自: http://zheteng.me/android/2016/02/29/flavors-with-gradle/?utm_source=tuicool&utm_medium=referral在使用Gradle来打包Android应用之前,Android自动化打包通常会选择使用ant,ant是一种一步一步来执行任务的工具,通常打包一个apk要经过一个复杂的过程,ant工具通过一转载 2016-08-03 17:35:21 · 10642 阅读 · 0 评论 -
Android使用网络服务发现
编写:naizhengtan - 原文:http://developer.android.com/training/connect-devices-wirelessly/nsd.html添加网络服务发现(Network Service Discovery)到我们的 app 中,可以使我们的用户辨识在局域网内支持我们的 app 所请求的服务的设备。这种技术在点对点应用中能够提供大量帮助,例如转载 2016-08-17 10:41:26 · 2100 阅读 · 1 评论 -
使用 gradle 编译多版本 android 应用
最近要做一个 android 产品的变种版本,需要编出不同版本,每个版本有不同的包名、图标等等,和一些特有的逻辑。很久之前做过类似的工作,当时没有 gradle, 用的方法是把公共代码抽成一个 library,不同版本建一个工程引用公共 libery。但是这种方法每个版本要建一个工程,工作量较大,并且会有一些重复代码,不好维护。现在的工程是用 gradle 构建的,网上查了一下应该转载 2016-09-09 11:23:57 · 989 阅读 · 0 评论 -
Android 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)
转载自: http://www.open-open.com/lib/view/open1378262024781.html众所周知,通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下PackageManager packageManager = this.getPackageManager(); List packageInfoList = pac转载 2016-08-19 13:54:05 · 3811 阅读 · 0 评论 -
android中如何实现离线缓存
离线缓存就是在网络畅通的情况下将从服务器收到的数据保存到本地,当网络断开之后直接读取本地文件中的数据。将网络数据保存到本地:你可以自己写一个保存数据成本地文件的方法,保存在android系统的任意目录(当然是有权限的才行),但是在这种情况下使用Context的openFileOutput方法最简便也最符合我们的场景,下面的 saveObject 方法演示了如何用openFileOu转载 2016-08-21 22:17:13 · 4774 阅读 · 0 评论 -
Android编程之SparseArray<E>详解
转载自:http://blog.csdn.net/xyz_fly/article/details/7931943最近编程时,发现一个针对HashMap的一个提示:翻译过来就是:用SparseArray来代替会有更好性能。那我们就来看看源码中SparseArray到底做了哪些事情:一、构造从构造方法我们可以看出,它和一般的List一样,可以预先设置容器转载 2016-08-22 09:44:10 · 367 阅读 · 0 评论 -
Android沉浸式状态栏完全解析
转载自 郭神记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的完全解析。其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发起的。因为Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模式(Immersive Mode)这种说法。而有些人在没有完全了解清楚转载 2016-08-23 09:55:07 · 1664 阅读 · 0 评论 -
国内 Top500Android 应用分析报告
背景笔者目前在开发的应用在线上有不少OOM的问题,经过一番优化后,OOM降了一个量级,但由于产品中Gif是一特色,内存占用优化空间比较有限,想要减少OOM最简单的办法可能就是开启largeHeap。Google官方是不推荐使用largeheap的,更大的内存意味着更长的垃圾回收时间,所以我就想看看国内的这些应用是否有打开largeheap。用AS的APK Analyzer看了下微信和QQ空转载 2016-08-23 15:34:51 · 924 阅读 · 0 评论 -
QQ音乐/酷狗音乐锁屏控制实现原理
http://www.zhihu.com/question/31992887我实现的效果混乱的锁屏控制android自4.0版本, 也就是API level 14开始, 加入了锁屏控制的功能, 相关的类是RemoteControlClient, 这个类在API level 21中被标记为deprecated, 被新的类MediaSession所替代. 我们的音乐App中转载 2016-09-23 00:21:40 · 2339 阅读 · 0 评论 -
android studio在一个文件夹下创建多个module(libraray)
每次开发项目都会引入一些第三方支持库,而在android studio下它们都是作为module的形式存在一个项目中,太多的话难免看起来很乱,所以萌生了把他们放在同一个文件夹下的想法,也就是这样:步骤如下: 1.在工程根目录下新建extraModules文件夹 2.将这三个module拖进extraModules文件夹 3.在setting.gradle中将原有的:mo原创 2016-09-20 10:01:16 · 3683 阅读 · 0 评论 -
如何发现优秀的开源项目?
转载自:http://blog.csdn.net/googdev/article/details/52060211之前发过一系列有关 GitHub 的文章,有同学问了,GitHub 我大概了解了,Git 也差不多会使用了,但是 还是搞不清 GitHub 如何帮助我的工作,怎么提升我的工作效率?问到点子上了,GitHub 其中一个最重要的作用就是发现全世界最优秀的开源项目转载 2016-09-20 13:16:40 · 451 阅读 · 0 评论 -
引入的第三方库最低支持版本高于我的项目的最低支持版本
比如我的项目的最低支持版本为8(Android 2.2),而第三方库的最低支持版本为9(Android 2.3),所以抛出了这个异常。解决办法:在AndroidManifest.xml文件中 标签中添加<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas原创 2016-09-20 20:33:46 · 1916 阅读 · 0 评论 -
multidex分包续:将指定的类打包到主dex中
一、为什么有将指定的类放入主dex中的需求我们分包的时候会遇到一个问题,因为加载和初始化的问题,如果某个类不在主dex中,那么程序就会报错,Java.lang.NoClassDefFoundError例如:自定义主dex所包含类的过程中,有9个类必须在主dex中android/support/multidex/MultiDex.classandroid/support/multide转载 2016-11-08 18:37:08 · 1186 阅读 · 0 评论 -
APK自我保护 - DEX/APK/证书校验
转载自: http://gnaixx.cc/2016/04/19/android-protect-dex_apk_cert_check/0x00 DEX校验classes.dex 是 Android 虚拟机的可执行文件,我们所写的 java 代码其实都在这里面,所有很多对应用程序的篡改都是针对 classes.dex 文件的。可以找一个 APK 解压就可以看到 classes.de转载 2016-11-22 13:54:50 · 2661 阅读 · 0 评论 -
手把手教你逆向分析 Android 程序
转载自:https://segmentfault.com/a/1190000005133219 作者真是高手很多人写文章,喜欢把什么行业现状啊,研究现状啊什么的写了一大通,感觉好像在写毕业论文似的,我这不废话,先直接上几个图,感受一下。第一张图是在把代码注入到地图里面,启动首页的时候弹出个浮窗,下载网络的图片,苍老师你们不会不认识吧?第二张图是微信运动步数作转载 2016-11-22 16:32:39 · 20642 阅读 · 1 评论 -
android studio 测试两种测试用例的切换问题
ANDROID STUDIO 1.5使用JUNIT单元测试,以及“TEST RUNNING STARTEDTEST RUNNING FAILED: INSTRUMENTATION RUN FAILED DUE TO 'JAVA.LANG.RUNTIMEEXCEPTION' EMPTY TEST SUITE”2015 年 11 月 26 日 默默发表回复 331 浏览转载 2016-01-12 16:24:19 · 6190 阅读 · 0 评论 -
<meta-data>的使用
AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.need88.apptests"> <application android:allowBa原创 2015-11-30 17:34:48 · 734 阅读 · 0 评论 -
Android studio修改变更Eclipse快捷键
as的快捷键死活用不习惯,无奈浪费时间自己做了调整安装as后,第一次启动后如果我们修改了默认的快捷键,会发现C:\Users\Administrator\.AndroidStudio1.5\config\ 下生成了\keymaps\Eclipse copy.xml文件。放入我们之前版本整理过的Eclipse copy.xml文件<keymap version="1" name="Eclipse c原创 2015-11-29 16:15:51 · 1093 阅读 · 0 评论 -
ADB的使用
adb的使用说明原创 2015-10-03 20:17:25 · 492 阅读 · 0 评论 -
ListView内 按钮的点击事件
注释写的很清楚,没啥好说的SimpleAdapter的使用public class MainActivity extends Activity { private ListView listView; List<Map<String,Object>> listItems ; private String [] names = new String[]{"wangli","xia原创 2015-10-04 16:25:12 · 1880 阅读 · 0 评论 -
零碎知识点(未分类)
1 当一个view(image/text view都可以)的android:clickable=”true”可以像button一样点击 然后背景颜色android:background=”@drawable/选择颜色的xml文件名”可设置点击、非点击两种状态颜色 这个背景状态改变,只有在clickable=true才有效2<Spinner android:id="@+id/id原创 2015-10-04 16:43:55 · 662 阅读 · 0 评论 -
切换默认Activity和Fragment的动画
Activity中public void click(View view){ Intent intent = new Intent(); intent.setClass(this, TwoActivity.class); startActivity(intent); overridePendingTransition(R.anim.en原创 2015-10-03 15:12:59 · 2382 阅读 · 0 评论 -
安卓 VersionCode和VersionName
Google为APK定义了两个关于版本属性:VersionCode和VersionName,他们有不同的用途。VersionCode:对消费者不可见,仅用于应用市场、程序内部识别版本,判断新旧等用途。VersionName:展示给消费者,消费者会通过它认知自己安装的版本,下文提到的版本号都是说VersionName。 结尾有三个常见问题的解决方案同一个版本号,对应了多个Vers原创 2015-09-25 17:23:25 · 644 阅读 · 0 评论 -
使用jazzyViewPager 加载assets目录打造炫酷效果
MainActivitypackage com.need88.drawableround;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import android.app.Activity;import android.content.res.AssetManager;imp原创 2015-11-09 21:49:25 · 26331 阅读 · 0 评论 -
加速Android Studio/Gradle构建
androidandroid studiogradle已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。开启gradle单独的守护进程在下面的目录下面创建gradle.转载 2015-11-14 13:11:07 · 470 阅读 · 0 评论 -
HttpClient 登录爬取信息
爬取图片[1].[文件] SemeiziCrawler.java ~ 5KB 下载(576) 跳至 [1] [2] [3]?123456789101112131415161718192021222324252627282930313233转载 2015-11-15 11:11:14 · 2651 阅读 · 0 评论 -
Android从assets和raw中读取txt文件
方法一、将要读取的txt文件拷贝到Android工程目录下的assets文件夹下方法二、在res文件夹下新建raw文件夹,将txt拷贝到该目录下本方法是从assets中读取从assets中读取txt private void readFromAssets() { try { InputStream is = getAssets().open("qq.txt");转载 2015-10-15 21:49:12 · 1111 阅读 · 0 评论 -
android.support.v4.widget.DrawerLayout 抽屉效果导航菜单
抽屉效果导航菜单图示如图所示,抽屉效果的导航菜单不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面左上角的一个按钮点击,菜单就滑出来,而且感觉能放很多东西概况:实现上图所示的抽屉效果的导航菜单有以下两种方式 方式1.用SlidingDrawer: http://developer.android.com/reference/and转载 2015-11-17 08:44:28 · 3511 阅读 · 0 评论 -
Fragment的使用(附带动画)
应用场景:众所了解Android上的界面展示都是通过Activity实现的,但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了。为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像Activity一样包含布局。Fragment通常是嵌套在Activity中使用的。首先需要注意,F转载 2015-11-23 14:32:34 · 2462 阅读 · 0 评论 -
android使用获取所有应用的资源id和uri
摘要 android使用获取所有应用的资源id和uri转载地址: http://my.oschina.net/ososchina/blog/353692目录[-]一.获取资源的id二.获取资源的uri在某些应用中,为了实现应用apk资源放入重复利用,或者使用反射得到本应用的资源,需要使用反射反射方式获得,但Resources类中也自带了这种获转载 2015-11-24 10:54:43 · 757 阅读 · 0 评论 -
创建Fragment使用 构造函数 还是 newInstance()
Creating a Fragment: constructor vs newInstance()from stack overflowand another chapter最近,我厌倦了在创造Fragments 把字符串参数传给Bundles的重要性。因此,我决定在构造函数中设置参数,并把这些参数放入Bundlepublic ImageRotatorFragm转载 2015-11-23 15:55:05 · 3243 阅读 · 0 评论 -
优化Android studio的编译速度
自从使用了Android studio,尼玛,版本更新帝啊,可能是我电脑太次,启动后,coding一顿一顿的,希望Google快点改善。开启gradle单独的守护进程:在下面的目录下面创建gradle.properties文件: /home//.gradle/ (Linux) /Users//.gradle/ (Mac) C:\Users\.gradle (Windows) 并在文件中增加原创 2015-11-29 09:32:33 · 801 阅读 · 0 评论 -
Windows环境下Android Studio v1.0安装教程
准备工具JDK安装包。要求:JDK 7以及以上版本。Android Studio安装文件。Windows:exe(包含SDK) (813 MB)exe(不包含SDK) (250 MB)zip (235 MB)Macdmg (234 MB)zip (233 MB)Linux:zip (233 MB)说明:32位系统和64位系统是同一个安装文件。转载 2015-11-29 12:15:42 · 466 阅读 · 0 评论