- 博客(62)
- 资源 (4)
- 收藏
- 关注
原创 下载编译chromium
搭建环境: win10 1、在“启用或关闭Windows功能”勾选“适用于Linux的Windows子系统(Beta)”项。 2、进入“设置 - 更新和安全 - 针对开发人员”设置页面,选中“开发人员模式”。 3、以管理员方式打开cmd,在控制台运行PowerShell,输入 Enable-WindowsOptionalFeature -Online -FeatureName M
2017-11-02 18:24:58
608
转载 欢迎使用CSDN-markdown编辑器
gradle keyPassword System.consolehttps://stackoverflow.com/questions/19487576/gradle-build-null-console-objectgradle.taskGraph.whenReady { taskGraph -> if(taskGraph.hasTask(‘:app:assembleRelease’)
2017-08-13 19:08:39
347
转载 红茶一杯话Binder(ServiceManager篇)
转自: https://my.oschina.net/youranhongcha/blog/149578 1.先说一个大概 Android平台的一个基本设计理念是构造一个相对平坦的功能集合,这些功能可能会身处于不同的进程中,然而却可以高效地整合到一起,实现不同的用户需求。这就必须打破过去各个孤立App所形成的天然藩篱。为此,Android提供了Binder机制。 在Android中,
2017-05-16 19:07:04
433
转载 基于栈与基于寄存器的指令集架构
用C的语法来写这么一个语句: C代码 收藏代码 a = b + c; 如果把它变成这种形式: add a, b, c 那看起来就更像机器指令了,对吧?这种就是所谓“三地址指令”(3-address instruction),一般形式为: op dest, src1, src2 许多操作都是二元运算+赋值。三地址指令正好可以指定两个源和一个目标,能非常灵活的支持二元操作与赋值的组合。A
2017-05-15 19:19:41
778
转载 Android中使用AbstractProcessor在编译时生成代码
转:http://blog.csdn.net/industriously/article/details/53932425
2017-05-11 15:49:57
419
转载 Binder学习指南
转自: http://weishu.me/2016/01/12/binder-index-for-newer/毫不夸张地说,Binder是Android系统中最重要的特性之一;正如其名“粘合剂”所喻,它是系统间各个组件的桥梁,Android系统的开放式设计也很大程度上得益于这种及其方便的跨进程通信机制。理解Binder对于理解整个Android系统有着非常重要的作用,Android系统的四大组件,
2017-05-02 17:42:19
395
转载 JAVA并发编程——守护线程(Daemon Thread)
在Java中有两类线程:用户线程 (User Thread)、守护线程 (Daemon Thread)。所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因 此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。用户线程和守护
2017-03-28 11:53:16
295
原创 工作总结——绕过系统权限检测调用特定接口
问题描述: 在日常使用中framework的一些接口是不想给第三方非system app使用的。这样做不但安全,也防止第三方会做一些流氓的事情。以android 5.1.1为例,无论是在调用ams中forceStopPackage还是pms中的addPreferredActivity在调用前都会check调用方的 permission,这就导致的不该调用的人调用后被抛出异常。但是如何能绕过这个ch
2017-03-27 12:09:17
1437
1
转载 sun.misc.Unsafe的后启示录
come from:http://www.infoq.com/cn/articles/A-Post-Apocalyptic-sun.misc.Unsafe-WorldJava语言和JVM平台已经度过了20岁的生日。它最初起源于机顶盒、移动设备和Java-Card,同时也应用在了各种服务器系统中,Java已成为物联网(Internet of Things)的通用语言。我们显然可以看到Java已经无处不
2017-03-27 10:12:49
455
原创 Android Studio 让JNI调试C/C++更加方便(通过lib调用native调试)
搭配使用 Android Studio 2.2 或更高版本与 Android Plugin for Gradle 版本 2.2.0 或更高版本时,您可以将 C 和 C++ 代码编译到 Gradle 与 APK 一起封装的原生库中,将这类代码添加到您的应用中。也就是说我们可以在需要jni调用的项目中像调试java一样调试native层代码。可能我们在日常工作中调试native层代码很痛苦,需要打log
2017-03-15 11:54:45
9638
原创 近期工作总结
近期分析了一款应用的自启动,防强杀的方式,把需要记录的东西写下以供日后回忆。 发现一款应用在很多手机上能自启动,防止am force-stop ,并且没有root权限,这就是它牛逼的地方。 准备 1.编译android 5.1.1,单独编译framework 中的模块,service.jar 在ActivityManagerService ActiveServices中加入log,log点就
2017-03-03 16:38:11
324
原创 整理一下编译系统步骤以供日后再来使用
https://source.android.com/source/running.html 手机 nexus 5编译系统步骤: 1. source build/envsetup.sh 2. lunch 选择一个版本 3. make -j8 一般如果提示没权限要su一下 重来了。 之后刷到手机里去 1. adb reboot bootloader 进入bootloader$ f
2017-02-24 18:37:40
412
原创 How to access Package Name from JNI/NDK?
#include <jni.h>#include <string>#include <unistd.h>#include <sys/types.h>#include <sys/file.h>#include <dirent.h>#include <stdlib.h>#include <ctype.h>#include <fcntl.h>extern "C"jstringJava_x
2017-01-03 15:39:20
790
原创 Android Studio Project debug library show source code does not match the bytecode
最近接手了一些新的工程,里面用android studio调试library。在调试的时候 会发现调用某些接口的时候 ide 提示:source code does not match the bytecode 但是看library源码的确是匹配的,google了好久也没有结论,WTF!!!!!!不但如此Debugger下的Frames堆栈对应的接口也是不对的,我就开始怀疑是不是代码混淆的问题。但是
2016-12-21 19:45:13
10833
1
原创 解决Android Studio 2.2.3中添加.cpp .h文件在Project->Android无法显示,无法正常编译问题。
搭配使用 Android Studio 2.2 或更高版本与 Android Plugin for Gradle 版本 2.2.0 或更高版本时,您可以将 C 和 C++ 代码编译到 Gradle 与 APK 一起封装的原生库中,将这类代码添加到您的应用中。您的 Java 代码随后可以通过 Java 原生接口 (JNI) 调用您的原生库中的函数。如果您想要详细了解如何使用 JNI 框架,请阅读 An
2016-12-14 18:35:16
8630
原创 关于DexClassLoader加载类loadClass遇到ClassNotFoundException
在插件化开发中这个东西很容易遇到,今天干了一件很傻的事情。没有在AndroidManifest中声明 这些权限,但是就从存储卡中加载含有dex的jar,导致每次dexClassLoader.loadClass的时候都会抛出ClassNotFoundException的异常。但实际上jar中是有这个要加载的类的。
2016-11-21 19:31:47
5772
3
原创 Android 执行shell 命令
package com.haha.xixi;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import j
2016-11-14 19:22:41
1224
原创 第一次写python
昨天大学同学问我一个脚本该怎么执行,看了一眼不知道什么语言,正好也忙就没来得及处理,今天交流一下他是为了批量打包写的python脚本。于是下载安装了一个python3.5.2。需求是在windows下实现一个功能,C:\Users\xxxxx\Desktop\1.py C:\Users\xxxxx\bigsmall\bs.exe但是windows上面和mac有点区别。mac上cwd = "../b
2016-11-02 17:05:33
350
原创 项目总结
car os 1.在ViewPager各个页面切换的时候默认会消耗重建,但是很多时候我们是不能让它这么干的就需要 mViewPager.setOffscreenPageLimit(3);2.对一个View反复用FragmentTransaction commit的时候记得一定要用FragmentLayout这个布局layout,别的layout不能被反复commit。3. 为了安全起见编译服务
2016-09-27 17:41:13
351
转载 ViewPager防止Fragment销毁以及取消Fragment的预加载
版权声明:本文为博主原创文章,转载请注明出处,http://blog.csdn.net/mr_liabill 目录(?)[+] 转载请注明出处:http://blog.csdn.net/mr_liabill/article/details/48749807 来自《LiaBin的博客》ViewPager简介 ViewPager不用多说,是v4包中的一个控件,可以用来实现屏幕间的切换。
2016-09-21 19:24:54
688
原创 ObjectAnimator之android:propertyName
在Android API level 11之后属性动画为我们实现动画提供了很大的便利。ObjectAnimator anim = ObjectAnimator.ofFloat(foo, "alpha", 0f, 1f);anim.setDuration(1000);anim.start();这样短短3行代码就实现了一个View的淡出动画(背景颜色由浅入深)。动画无非就是在人眼识别的范围内,在单位
2016-07-26 19:41:47
5333
原创 android activity中 Task日常中使用
关于android:taskAffinity这个属性在日常开发中不一定能用到,但是在某些特殊的场景下就会发挥很好的作用。在介绍这个属性前先要了解一些关于任务和返回栈的概念。*任务是指在执行特定作业时与用户交互的一系列 Activity。 这些 Activity 按照各自的打开顺序排列在堆栈(即“返回栈”)中。*根据android官网中的解释:(https://developer.android
2016-06-07 17:42:57
692
翻译 Parcel 写入boolean
Here’s how I’d do it…writeToParcel:dest.writeByte((byte) (myBoolean ? 1 : 0)); //if myBoolean == true, byte == 1 readFromParcel:myBoolean = in.readByte() != 0; //myBoolean == true if byte != 0
2016-06-03 17:23:06
2130
原创 自定义Preference中设置其中TextView,等widget方法
在custom 的preference中可以添加textview等widget,直接通过findviewbyid找到某一widget并设置其text是不行的。方法是: 在custom preference中的 1. protected void onBindView(View view)找到该widget findViewById(R.id.txt);if (null != mMoreInf
2016-05-23 15:45:58
1786
原创 Android Hierarchy View在工作的使用
Hierarchy 在工作中的使用本文意在基类改工具在日常工作中的使用方法,为以后工作提供方便:发现布局不正确的UI界面发现布局不正确的UI界面 在日常开发的过程中难免会遇到一些复杂的UI界面,但是界面中会出现一些意外的布局问题,我会选择使用Hierarchy快速的定位问题 通过Hierarchy可以快速的发现UI布局问题出在ListView这里,那么就去相关的布局文件查看该List
2016-05-12 14:32:46
463
原创 一定要用相同的Context 对同一个receiver进行registerReceiver与unregisterReceiver吗?
最近在开发一些功能,突然想到在动态注册和反注册receiver的时候一定要用相同的context吗?我不敢肯定咨询了同事,得到的答案是不行的,然而为了进一步佐证他的观点我自己尝试了一下。也就是查了一下相关代码。众所周知android的应用程序在ActivityThread的public static void main(String[] args)中开始调用我们写的代码,Application 、A
2016-02-03 20:57:27
4193
原创 Android Studio 常见问题
Android Studio 常见问题在这里记录在日常使用Android Studio中常见的一些问题。新建工程无法在Design中查看布局文件现象:新建一个工程,没有做什么事情,但是却不能正常的查看布局文件。 解决:切换到Text编辑界面,将app:layout_behavior=”@string/appbar_scrolling_view_behavior”这行删除,如果还是不行,请将一些
2015-12-04 16:00:01
3603
原创 手动更新配置gradl
当第一次使用Android Studio的时候需要对这个构建工具进行配置下载。由于天朝网络的问题,即使你在setting里设置了代理下载依然很慢,它人性话的地方就是在Terminal输入指令的时候会告诉你需要下载的地址,这样就可以用迅雷快速把这个下载下来。然后就是配置,这个文件的路径是C:\Users\"your username"\.gradle\wrapper\dists,以文
2015-11-19 12:06:04
17975
转载 JAVA中mark()和reset()用法
根据JAVA官方文档的描述,mark(int readlimit)方法表示,标记当前位置,并保证在mark以后最多可以读取readlimit字节数据,mark标记仍有效。如果在mark后读取超过readlimit字节数据,mark标记就会失效,调用reset()方法会有异常。 但实际的运行情况却和JAVA文档中的描述并不完全相符。 有时候在BufferedInputStream类中调用mark
2015-10-24 17:14:34
2644
转载 Java中System.loadLibrary() 的执行过程
System.loadLibrary()是我们在使用Java的JNI机制时,会用到的一个非常重要的函数,它的作用即是把实现了我们在Java code中声明的native方法的那个libraryload进来,或者load其他什么动态连接库。算是处于好奇吧,我们可以看一下这个方法它的实现,即执行流程。(下面分析的那些code,来自于android 4.2.2 aosp版。)先看一下这个方法的code(在
2015-07-06 14:56:54
2901
转载 Android 学习笔记——利用JNI技术在Android中调用、调试C++代码
转自:http://cherishlc.iteye.com/blog/1756762在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在Android中会生成Linux系统下的.so文件(好吧,其实我基本没用过Linux)。 没写过JNI的可以看看我之前的博客(Windows下利用Visual Studio开发的过程):http://cheri
2015-07-04 18:20:54
473
原创 生成解析sqlite DB文件笔记
这两天学习处理用sqlite存储的db文件总结一点学习心得1.打jar包的时候在注意在最后一步选择入口函数所在的类,不然运行jar的时候找不到入口 如果不在这里设置的话也可以在jar包的META-INFO/MANIFEST.MF里添加入口函数所在的类 添加格式: Main-Class: encodedb.edb 添加注意: 1)Main-Class:后面要有空格
2015-06-03 15:05:35
1886
转载 java创建使用SQLite数据库
下载SQLite数据库的JDBC这里给出一个中文站点的URL:注意:这个驱动包不要下载错了,在学习过程中我下载了多个jar但都是不匹配的jar包http://dldx.csdn.net/fd.php?i=911317835363766&s=7923754ed6490250d8d62523daffab5b将下载到的包解压后得到jar包 sqlitejdbc-v056.jar 放到
2015-06-01 17:15:59
10095
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人