Android
文章平均质量分 67
Android 技术经验分享
catoop
性格开朗外向,积极进取充满热情,为人诚恳做事用心,爱好手工实践和大自然。有较强的自学意识创新意识和进取精神。喜欢分享技术收获,虽然是一个知识的搬运工,但对技术孜孜不倦,什么都想搞什么都想做的劲头小伙,善于灵活的运用技术优雅的解决问题,善于表达乐于沟通,一切只因心中那殿力量努力向上。
展开
-
使用 apktool 解包 apk 并重新打包签名
Apktool 是一款用于对第三方、封闭、二进制 Android 应用进行逆向工程的工具。它可以将资源解码为接近原始形式,并在进行一些修改后重建它们;它可以逐步调试 smali 代码。由于具有类似项目的文件结构和一些重复任务(例如构建 apk 等)的自动化,它还可以更轻松地使用应用。本文以某myapp.apk为例,解包后修改文件中的内容,再重新打包签名。原创 2024-07-09 16:03:15 · 1618 阅读 · 0 评论 -
开发uniapp插件包aar文件,使uniapp可以调用jar包
将第三方 jar 包拷贝到 libs 目录中,如果该 jar 包需要依赖其他 jar 包,你可以选择将相关依赖的 jar 包都拷贝到 libs中,或者在 build.grade 的 dependencies 中添加依赖,最后点击右上角的。默认情况下打包是 debug 打包,生成的 aar 文件中也包含 debug 字样,我们最终使用还是希望使用 release 正式版,并且正式版本你可能做了混淆或者压缩对其等处理(具体配置可以在。切换 buildType 后,再执行构建,生成的包就是对应类型的文件了。原创 2024-06-20 08:41:42 · 2680 阅读 · 0 评论 -
Android 编译错误:No signature of method: build_*.android() is applicable for argument types
注释掉其中的所有内容,然后逐步放开继续编译,直到缩小范围确定到最终错误点。最后对应修正问题即可。原创 2024-06-18 17:41:33 · 580 阅读 · 0 评论 -
安卓手机获取当前连接的WIFI相关信息
package com.lenovo.xiaoshan.test;import android.app.Activity;import android.bluetooth.BluetoothAdapter;import android.content.Context;import android.content.Intent;import android.net.wifi.WifiIn原创 2012-04-10 15:54:22 · 14683 阅读 · 2 评论 -
Android 项目的代码混淆,Android proguard 使用说明
Android 项目的代码混淆,Android proguard 使用说明原创 2015-08-02 18:43:23 · 37148 阅读 · 15 评论 -
Android 中 px和dp 的转换
安卓开发中,布局文件中我们习惯使用dp单位,但是很多java代码的api中默认使用的是px单位(如 setPadding、setButtom、setLeft 等),这就需要我们在很多场景下进行dp和px的转换。代码片段如下:public class DensityUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) *原创 2015-10-28 16:04:28 · 7697 阅读 · 1 评论 -
解决NDK开发中Eclipse报错“Unresolved inclusion jni.h”的最终方法
在做NDK开发过程中有时候在eclipse里会遇到其无法处理inclusion导致symbol显示错误,网上有许多方法可以解决类似“Unresolved inclusion jni.h” 错误的方法,包括include path等方法,不过对我都不管用。最终的解决办法就是初始化eclipse对该project的native support:在eclipse中关闭指定Project用其他编辑工具打转载 2015-11-20 09:09:33 · 1503 阅读 · 0 评论 -
android 图表引擎
android 图表引擎- Java4Less (http://java4less.com/charts/chart.php?info=android)- Chart4J (http://code.google.com/p/charts4j/) 需要网络支持- BlueChart (http://code.google.com/p/bluechart/)- aChartEn原创 2012-12-06 11:15:10 · 3603 阅读 · 0 评论 -
Android NDK 环境搭建 之 起始篇NDK HelloWorld
ADT插件:管理Android SDK和相关的开发工具的 NDK插件:用于开发Android NDK的插件,ADT版本在20以上,就能安装NDK插件,另外NDK集成了CDT插件(所以本文直接针对ADT 20以上版本进行说明)到Android官网下载最新的NDK,注:NDK版本在r7以上之后就集成了Cygwin,而且还是十分精简版。比起下载Cygwin要方便多啦(Cygwin以前需要单独安装和配置,原创 2015-11-19 13:10:06 · 4665 阅读 · 2 评论 -
Android Ndk中C与JAVA之间的互相调用
本例实现一个简单的场景:1、使用C编写一个方法,接收1个参数,方法中调用Java的方法。2、Java类中编写一个方法,接收一个参数。3、模拟调用场景:点击按钮 -> 调用C方法 -> C调用Java方法 -> 获得返回值 -> Toast提示。项目结构图:代码如下:CcallJava.javapackage com.shanhy.example.ccalljava;/** * C调用Java原创 2015-11-20 15:32:14 · 2717 阅读 · 0 评论 -
错误: INSTALL_FAILED_VERSION_DOWNGRADE
安卓新版本的 ADT 在安装apk的时候,会检查当前要运行的版本 AndroidManifest.xml 中的 versionCode 和手机中已经安装过的该程序的 versionCode 做对比,如果手机中的 versionCode 比较高,ADT 就会提示出错:INSTALL_FAILED_VERSION_DOWNGRADE所以,解决这个问题就是修改 AndroidManifest.xml 中原创 2015-08-29 12:23:09 · 34749 阅读 · 2 评论 -
xliff:g 错误 error: Error parsing XML: unbound prefix
在安卓项目中使用 xliff:g ,按如下这样写%1$s个字出现了错误 error: Error parsing XML: unbound prefix ,原因是缺少xliff:g 的命名空间。解决方法为:当然安卓中如果在xml 文件中出现这样的错误提示,一般都是缺少引入命名空间导致,所以找到对应的命名空间加上即可。原创 2015-07-24 00:41:57 · 4262 阅读 · 1 评论 -
android 关于利用签名的SHA1进行安全校验的方法之一
最近做安卓项目中使用到了百度地图的API,在申请百度地图key的时候,需要我们填入“签名的SHA1”和“客户端包名”,然后百度为我们生成一个key。于是就引发了思考,百度为何需要我们客户端签名的SHA1值呢?第一想法就是:百度拿我们输入的参数SHA1和包名进行一些列算法计算,生成一个key返回给我们。为了证明这个想法,写了demo进行测试,android获取包名的方法很简单,但是我们还需要从客户端原创 2015-07-22 15:56:06 · 10224 阅读 · 1 评论 -
This Handler class should be static or leaks might occur,Handler和Context使用的注意事项!
This Handler class should be static or leaks might occur,Handler和Context使用的注意事项!原创 2015-07-25 22:16:13 · 3253 阅读 · 2 评论 -
Execute failed: java.io.IOException: Cannot run program "sdk-linux/build-tools/22.0.0/aapt": error=2
在Linux上使用ant编译打包apk的时候,出现下面的错误及解决方法:1、/usr/local/android-sdk-linux/tools/ant/build.xml:698: Execute failed: java.io.IOException: Cannot run program "/usr/local/android-sdk-linux/build-tools/22.0.0/a原创 2015-07-30 22:18:15 · 14207 阅读 · 5 评论 -
去掉activity默认动画效果的方法
很多手机都会自带一些Activity切换动画,项目中如果我们需要禁用掉系统Activity切换的动画,可以使用如下方法:一、重写Activity的Them中的windowAnimationStyle相关属性,并保存在res/values/styles.xml @style/notAnimation @null @null原创 2015-07-29 15:05:43 · 15402 阅读 · 5 评论 -
Android使用TextView,设置onClick属性无效解决办法
Android在布局文件中为View提供了onClick属性,使用方法如下: <TextView android:id="@+id/user" android:layout_width="@dimen/px_171" android:layout_height="fill_parent" android:onClick="iconClick原创 2015-07-16 16:18:30 · 18999 阅读 · 2 评论 -
Android Activity之间切换出现短暂黑屏的处理方法
在默认情况下,Android应用程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初始化列表数据、向服务器发送请求获取数据等等。同样,使用startActivity(inte …… 在默认情况下,Android应用程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些转载 2015-07-29 15:08:16 · 5100 阅读 · 3 评论 -
当webview遇到360wifi
开篇先来说两点事实:1、现在的很多客户端项目中都会用到webview。2、现在用360wifi的用户也几乎是办公室中随处可见的事。大家都知道,我们的手机在第一次连接360wifi的时候,打开浏览器都会弹出360wifi广告页面。如下图所示:这种情况在我们平时上网的时候可能不会觉得有什么问题,但是如果我们开发的应用中使用到webview,那么在我们第一次连接360wifi的后,进入到应用中打开第一个原创 2015-08-08 14:35:10 · 4291 阅读 · 3 评论 -
Android 判断是开发debug模式,还是发布release模式
public class LogUtils { public static boolean APP_DBG = false; // 是否是debug模式 public static void init(Context context){ APP_DBG = isApkDebugable(context); } /** * 是否是debug模式(如果是release版本ap原创 2015-08-07 16:16:23 · 29938 阅读 · 4 评论 -
Android Studio 中 Gradle 基础
本文转载自:http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/------------------------------------------------------------------------------------------------------------------什么是Gradle?Gra转载 2015-12-30 11:02:28 · 1867 阅读 · 0 评论 -
Android应用被卸载后,自动使用 浏览器打开指定连接(或编写C代码执行其他操作)
本文,提供“Android应用被卸载后,自动使用 浏览器打开指定连接”的方法。 原理:在安卓程序中某处,基于JNI调用C代码开启一个子进程监控应用在系统中的文件目录,一旦应用被卸载,该目录将会被系统删除,此时触发子进程执行相关代码(本例调用浏览器执行打开一个连接) 1、在安卓项目下创建jni目录 2、在jni目录下创建文件observer.c/* * Copyright (C) 2009 T原创 2015-12-04 18:12:50 · 4306 阅读 · 3 评论 -
安卓jni项目会删除其他so文件的问题解决
安卓项目开发中,项目中使用到jni开发,使用C/C++编写了自己的so库,调试和运行一切正常,Android.mk文件代码如下:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:=observerLOCAL_SRC_FILES:=observer.cLOCAL_C_INCLUDES:= $(LOCAL_PA原创 2019-09-20 12:54:37 · 612 阅读 · 0 评论 -
客户端webview持有的页面缓存,不会立即释放的问题解决
客户端webview持有的页面缓存,不会立即释放的问题解决原创 2015-08-13 09:18:07 · 7419 阅读 · 1 评论 -
Android项目从Eclipse增加支持Android Studio
使用Eclipse开发Android已经有些年头了,然而Android Studio(后面简称AS)为谷歌自己推的IDE。现在AS已经出了2.0版本,其功能的确要比Eclipse要多。AS对硬件要求较高,Eclipse使用ADT插件也是简单易用。本文不对这2个IDE的优缺点进行阐述,没有哪个一定能完全替代哪一个这么一说,选择自己喜欢的就好。不过博主喜欢接触新事务,AS都出这么久了,也该拿出来遛遛了。原创 2016-02-23 09:21:37 · 4034 阅读 · 3 评论 -
Android 复制文本
安卓中,客户端中提供直接复制相关内容的功能,已经算是比较实用的功能了,Android 也提供了相关的API。 需要说明的是,兼容低版本手机在使用时,注意判断API版本呢,法代码如下:new View.OnClickListener() { @SuppressLint("NewApi") @Override public void原创 2015-12-04 15:21:34 · 5443 阅读 · 0 评论 -
Android自定义Dialog简单实例
做Android应用中,最缺少不了的就是自定义Dialog,对于系统默认提供的Dialog样式,一般都不复合我们应用的样式。 自定义Dialog需要3步骤即可: 1、主要的重写Dialog的Java类 2、清除Dialog Theme,在style.xml文件中加一个即可 3、使用方法一、创建CustomPopDialog2.java类package com.lenovocw.music.a原创 2015-12-04 16:55:16 · 11993 阅读 · 3 评论 -
安卓jni项目会删除其他so文件的问题解决
安卓项目开发中,项目中使用到jni开发,使用C/C++编写了自己的so库,调试和运行一切正常,Android.mk文件代码如下:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:=observerLOCAL_SRC_FILES:=observer.cLOCAL_C_INCLUDES:= $(LOCAL_PATH)/inc原创 2016-01-05 15:08:21 · 4841 阅读 · 6 评论 -
Android 使用 Gradle 多渠道打包
安卓开发完成,对于一个开放应用而言,我们需要发布到不同的应用市场,同时我们也需要统计不同市场的用户下载量。(通过启动应用后获取不同市场apk中的不同值来区分)下面用一个具体的实例来说明: 1、在AndroidManifest.xml的application内添加meta-data标签<application android:allowBackup="true" android:ic原创 2015-12-30 16:18:47 · 5144 阅读 · 5 评论 -
Android清除本地数据缓存代码
/** * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 */import java.io.File;import android.content.Context;import android.os.Environment原创 2015-12-15 18:13:24 · 3588 阅读 · 1 评论 -
获取Android签名证书的公钥和私钥
本文以Android签名JKS格式的证书为例:package com.test;import java.io.FileInputStream;import java.security.Key;import java.security.KeyStore;import java.security.PrivateKey;import java.security.PublicKey;import j原创 2015-11-21 15:39:01 · 6667 阅读 · 0 评论 -
android给未签名的apk签名
android给未签名的apk签名命令。 准备文件 1、unsign.apk(未签名的apk) 2、shanhy.keystore(签名证书文件)命令语法: jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias] 例 子: jarsigner -verbose -keyst原创 2015-09-21 06:34:05 · 5810 阅读 · 0 评论 -
安卓国际化,应用内切换语言
很多应用开发中,我们需要做多语言版本,安卓在这方面做的很好,下面就写一个简单的例子:一、项目目录结构这里对几个关键点进行说明下:drawable-hdpi 为我们默认的图片存放目录drawable-en-hdpi 为英文版本对应的图片存放目录,当然ldpi\mdpi\xhdpi 也一样,如果需要,分别按这样的规则创建目录即可。values 为默认的配置文件目录values-en 为英文版本的配置文原创 2015-08-28 17:56:22 · 3248 阅读 · 2 评论 -
在Hudson中,使用ant自动对安卓项目编译打包apk
在Hudson中,使用ant自动对安卓项目编译打包apk原创 2015-07-31 17:18:20 · 3909 阅读 · 1 评论 -
安卓广播防Java单例模式,synchronized关键字的使用。
public final class NotificationReceiver extends BroadcastReceiver { private static final String LOGTAG = LogUtil .makeLogTag(NotificationReceiver.class); private final static Object syncLoc原创 2014-08-26 16:22:17 · 67425 阅读 · 2 评论 -
linux下配置android sdk
该文章介绍下如何在linux中配置android sdk一、下载android sdk下载SDK,下载地址:http://developer.android.com/sdk/index.html,选择Linux(i386)。因为SDK只有32位的,如果装的是64位系统,则要安装ia32-libs,运行32位程序。安装命令:sudo apt-get install ia32-libs(在Ub原创 2012-05-30 22:51:47 · 45003 阅读 · 4 评论 -
Android 权限集合
程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下:1. android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问”properties”表在 checkin数据库中,改值可以修改上传( Allows read/write access to the “properties” t转载 2012-05-17 10:21:22 · 1960 阅读 · 0 评论 -
Android 获取签名公钥 和 公钥私钥加解密
public class GetPublicKey { /** * 获取签名公钥 * @param mContext * @return */ protected static String getSignInfo(Context mContext) { String signcode = "";原创 2015-11-28 22:47:07 · 11577 阅读 · 4 评论 -
LogCat大量Unexpected value from nativeGetEnabledTags: 0
在运行模拟器的时候。LogCat 输出很多Unexpected value from nativeGetEnabledTags: 0 提示,导致很多本来需要输出的信息被瞬间覆盖了,查询后得知是sdk的一个bug。解决方法:在 LogCat 左面有一个filter按钮,点开在by log message一栏填入 ^(?!.*(nativeGetEnabledTags)).*$ 即可。或者在我们当前应原创 2015-07-27 11:19:16 · 3576 阅读 · 1 评论 -
Webview的Cookie和缓存处理
Webview的Cookie和缓存处理原创 2015-07-11 16:08:53 · 3323 阅读 · 1 评论