![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android学习
yin1031468524
喜欢打篮球,听歌
展开
-
android反编译
有的时候需要反编译别人的apk,看看别人是怎么实现的,另外还可以获取到很多素材,不要再自己去弄图片了,下面就分享下最近自己反编译的学习记录。1.下载反编译工具Apktoolhttps://bitbucket.org/iBotPeaches/apktool/downloads原创 2015-08-28 11:43:12 · 1019 阅读 · 0 评论 -
面试中Activity常见的坑你都知道吗?
1、activity生命周期? Activity生命周期大家应该都知道,这里就不在啰嗦了,下面看看Google官网提供的一张经典的生命周期流程图: ①当启动Activity时,系统会依次调用onCreate-onStart-onResume,此时Activity处于可见状态②当Activity被kill或者调用了本身的finish方法时,依次会调用onPause-onStop-onDestroy原创 2017-07-01 10:41:55 · 909 阅读 · 0 评论 -
Android N(7.0) 编译出现ninja_wrapper Error
Android 7.0以后采用了Jack server编译,如果直接下载源码编译的话会出现下面的编译错误 ninja: build stopped: subcommand failed. make: *** [ninja_wrapper] Error 1需要对jack-server进行相关配置,具体步骤如下: 1、查看根目录是否有”.jack-settings” 执行”cd ~”,原创 2017-07-05 22:57:24 · 2440 阅读 · 1 评论 -
利用AndroidStudio添加其它语言目录
用AndroidStudio创建工程时,默认只有一个values目录,当需要添加一个其它语言目录时,具体流程如下:这样在res目录下就多了一个‘values-zh-rCN’目录,当然也可以自己在res目录下自己新建一个这样目录,这里纯粹就是记录下。ps:当我们不知道手机里某个语言对应在那个values目录时也可以通过这种方式查看,这个里面应该是最全的原创 2017-07-16 19:10:19 · 469 阅读 · 0 评论 -
修改sepolicy后编译出现‘Error while expanding policy’
在系统中添加某个“*.te”后,可能会出现下面的错误:libsepol.report_failure: neverallow on line 263 of system/sepolicy/domain.te (or line 9133 of policy.conf) violated by allow xx device:chr_file { read write open };libsep原创 2017-07-21 14:32:12 · 8671 阅读 · 3 评论 -
Android中监听语言变化的两种方式
Android中监听语言变化的方式有两种,通过在Activity里配置configChanges,然后重写onConfigurationChanged方法,另一种方式通过注册广播监听LOCALE_CHANGED,下面就来看下,这两种方式以及遇到的一些问题。1.在Activity里配置configChanges1.1 在对应Activity里添加configChanges配置原创 2017-07-19 22:40:28 · 14830 阅读 · 2 评论 -
Source Insight 4.0显示Tab键、空格以及Tab键转为4个空格
Source Insight 4.0中显示Tab键、空格、以及用4个空格替换Tab键,如下选择"Options"-->"Preferences"接着选择对应的文件类型,把Tab、空格、以及Tab强制转换为空格都勾选上原创 2017-08-09 10:38:24 · 36308 阅读 · 3 评论 -
android中对sim卡联系人的增删改查以及监听sim卡联系数据的改变
主要是对sim卡联系人增删改查的一些操作,以及ContentObserver的使用,另外给大家推荐一个android源码查看的网址原创 2015-12-20 21:04:47 · 5555 阅读 · 4 评论 -
Android getPhoneType获取当前phone类型不准
Android开发中,可能需要区分当前的phone是gsm或cdma类型,有时候cdma phone注册到4G网络时,调用Phone@getPhoneType获取到的类型为PHONE_TYPE_GSM,其实除了这个方法获取sim卡类型,还可以根据iccid会mccmnc来区分当前的sim卡类型,甚至可以区分得更详细(移动、联通、电信),具体方式如下://Only one sim cardpr原创 2017-11-28 11:41:27 · 4108 阅读 · 0 评论 -
[build.gradle配置系列(一)]android studio根据版本号动态生成apk名
1、 在build.gradle定义函数,根据时间动态返回时间标签def static releaseTime() { return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))}2、根据时间生成versionnameandroid { compileSdkVersion 26 ...原创 2018-03-30 21:02:15 · 6624 阅读 · 0 评论 -
[Android jni开发系列(一)]AndroidStudio开发环境搭建和常见错误解决
1、下载ndk ndk可以直接通过sudio下载(Tools->Android->SDK Manager->SDK tools里下载cmake和ndk) 或者直接到AndroidDevTools下载,像配置sdk一样配置ndk的环境。2、新建Android项目时勾选Include C++ Support,估计也是android以后主推的方式,我是通过Androidstud...原创 2018-04-09 21:27:10 · 1424 阅读 · 0 评论 -
[Android jni开发系列(二)]AndroidStudio移植eclipse NDK项目开发
1、在eclipse上开发ndk项目时一般都是在项目里新建jni目录,通过编写Android.mk和Application.mk编译生成so库,然后放到libs目录下就可以使用,下面来看下,在AndroidStudio怎么采用这种方式生成so。2、利用AndroidStudio配置几个需要用到的快捷命令,javah、ndk-build、ndk-build clean,具体作用如下:java...原创 2018-04-10 20:44:06 · 567 阅读 · 1 评论 -
[Android jni开发系列(三)]AndroidStudio jni开发常见问题
前面总结过两种方式进行Android ndk开发,今天再介绍一种利用AndroidStudio进行ndk开发的方式,和系列二中的方式差不多,不过不需要编译Android.mk和Application.mk,更为简单。利用《[Android jni开发系列(二)]AndroidStudio移植eclipse NDK项目开发》中配置的javah命令,生成包含native方法java类j对应jni头...原创 2018-04-10 21:19:54 · 5052 阅读 · 0 评论 -
[Android jni开发系列(四)]利用jni开发生成Android串口开发的so库
1、定义包含native方法的java类package android.serialport.api;import android.util.Log;import java.io.File;import java.io.FileDescriptor;import java.io.FileInputStream;import java.io.FileOutputStream;...原创 2018-04-24 20:36:03 · 837 阅读 · 0 评论 -
User版本手机如何导出联系人数据库?
1、Android在4.1后的版本加入了可以导出联系人数据的隐藏功能,实现代码:packages\providers\ContactsProvider\src\com\android\providers\contacts\debug\ContactsDumpActivity.java2、 使用方法方法1:运行adb命令 "adb shell am start -a com.an原创 2017-05-13 22:29:11 · 1152 阅读 · 0 评论 -
Android CTS 问题分析
为保证开发的应用在所有兼容Android的设备上正常运行,并保证一致的用户体验,Google制定了CTS(Compatibility Test Suite)来确保设备运行的Android系统全面兼容Android规范,Google也提供了一份兼容性标准文档(Compatibility Definition Document, CDD)。进行CTS之前,需要先从google官网下载相关文件,原创 2017-04-18 21:24:17 · 4046 阅读 · 0 评论 -
Android中logcat和adb使用
一.adb常用命令1.当手机连上电脑后,使用下面的命令能显示当前所有连接的手机adb devices原创 2015-08-17 15:10:10 · 1117 阅读 · 0 评论 -
OpenGrok简单使用说明
opengrok查看android源码简单的使用说明,快速搜索定位代码位置。。原创 2016-01-17 22:49:26 · 11506 阅读 · 0 评论 -
android:windowSoftInputMode属性介绍
前段时间遇到了关于输入法的问题,就简单整理了下,免得每次都忘记了原创 2016-01-10 16:24:10 · 888 阅读 · 0 评论 -
Android开发中利用AndroidStudio分包生成多个dex文件
Android中单个dex文件所能包含的最大方法数是65536,这包含所依赖所有jar以及应用代码中的所有方法。简单的apk方法数很难达到这么多,但是对于一些复杂大型的应用来说65536就很容易超过,当方法数达到65536后,编译器就无法完成编译工作并抛出类似下面异常:FAILURE: Build failed with an exception.* What went wrong:Ex原创 2017-03-17 16:05:13 · 16752 阅读 · 2 评论 -
Android Studio常用快捷键Mac版
在Android Studio中的Preference里有个keymap,里面对应着所有的快捷键的key和value,可以自己修改1、类似Eclipse的“Alt+/”快速提示补全功能,这个在eclipse里为“Context assist”,但在Studio里没这项,对应着为“Class name Completion‘,改为自己习惯的快捷键就可以使用了。2、使用android studio 出...原创 2017-02-27 14:48:32 · 1352 阅读 · 0 评论 -
Android Hook 简介
1、Hook基本概述Hook翻译过来是钩子的意思,我们都知道无论是手机还是电脑运行的时候都依赖系统各种各样的API,当某些API不能满足我们的要求时,我们就得去修改某些api,使之能满足我们的要求。这样api hook就自然而然的出现了。我们可以通过api hook,改变一个系统api的原有功能。基本的方法就是通过hook“接触”到需要修改的api函数入口点,改变它的地址指向新的自定义的函数。当然这种技术同样适用于Android系统,在Android开发中,我们同样能利用Hook的原理让系统某些方法运行原创 2017-03-18 17:53:25 · 12963 阅读 · 0 评论 -
Android Studio ButterKnife 插件安装使用
利用ButterKnife之后就不需要在代码中写大量的findviewbyId了,通过ButterKnife自动生成的方式,就可以用注解代替以前的findviewbyId,具体如下1、打开Studio 安装Plugins的界面,选择Preferences在Browse repositories里选择需要安装的插件,安装完成之后可能需要重启studio2、在bulid.g原创 2017-02-26 16:45:28 · 1309 阅读 · 0 评论 -
SIM相关术语MCC MNC UIM SIM PIN PUK简介
MCC:移动国家号码,由3位数字组成,唯一地识别移动用户所属的国家。MNC:移动网号,由两位数字组成,用于识别移动用户所归属的移动网。IMSI:区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,其结构有MCC+MNC+MSIN组成。MSIN:是国际移动用户识别码(IMSI)组成部分。中国电信对应的MCCMNC,其中以455开头的两个是中国原创 2017-02-27 11:13:37 · 4296 阅读 · 0 评论 -
linux中fork()函数详解
一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进转载 2017-03-27 17:03:03 · 414 阅读 · 0 评论 -
Android中使用ps命令查看进程PID
adb shell 进入手机后,执行ps就能显示手机里所有正在运行的进程Annroid 中ps命令参数:-t -x,-p,-P,-c [pid|name]-t显示进程下的线程列表-x 显示进程耗费的用户时间和系统时间,单位s-P 显示调度策略,通过是bg or fg ,当获取失败将会un和er比之前打印的内容多出了一列PCY,表示进程的调度等级Android进程调度状态:1原创 2017-03-07 17:55:36 · 41259 阅读 · 0 评论 -
Android Makefile文件中"=",":=","+=","?="的区别
Makefile中我们经常看到 = ,:=, ?=, +=这几个赋值运算符,特别是Android系统开发时,在mk文件中这个几个赋值运算都有着不同的意思,以前自己也有点疑惑,今天就干脆写了个小例子,来具体看看每个赋值运算的含义先来看看对这几个基本赋值运算的定义,如下:= :基本的赋值:= :覆盖之前的值?= :如果没有被赋值过就赋予=后面的值+= :添加等号后面的值,等价于字原创 2017-03-28 13:07:33 · 1734 阅读 · 0 评论 -
Android中dumpsys命令详解
dumpsys命令主要用来查看所有系统服务状态的相关信息,在分析bug的时候,有时候就需要用到dumpsys查看相关service的信息,下面就简单说下这个命令的使用1、查看当前手机所支持的dump服务不同Android手机可能支持的dumpsys命令不同,可通过下面命令查看当前手机所支持的dump服务,并且查询服务名对应的具体service#查看当前手机所支持的dump服务ad原创 2017-04-08 13:48:21 · 3183 阅读 · 0 评论 -
Android中aapt使用详解
aapt是Android sdk中提供的一个小工具,功能十分强大。appt:Android Asset Packaging Tool ,在sdk的build-tools下,这个工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk). 也可将资源文件编译成二进制文件。我们可能没有直接使用过这个命令,但是build scripts和IDE插件会使用这个工具打包apk文件构成原创 2017-03-24 23:27:44 · 31608 阅读 · 0 评论 -
AndroidStudio 使用常见错误记录
1、使用AndroidStudio编译apk后,点击运行图标后,提示apk安装失败,具体错误如下: Session 'app': Error Installing APKThe APK file xxx does not exist on disk.Error while Installing APK找到Gradle窗口,点击下图的图标 点击刷新后,重新运行,即可安装编...原创 2018-04-20 16:41:07 · 508 阅读 · 0 评论