Skip to content

Instantly share code, notes, and snippets.

@rallat
rallat / dexmethodcount
Last active March 25, 2024 13:54
Android Dex Method Count more sophisticated scripts that gives you method cound by package @JakeWharton https://gist.github.com/JakeWharton/6002797 and @tsmith https://gist.github.com/tyvsmith/6056422
You can add this to your shell profile and then use it as dexcount file.
This file should have a classes.dex in order to work, that means it has to be a android lib project or android apk.
count(){
mkdir temp >/dev/null
cp $1 temp/$1+copy > /dev/null
unzip temp/$1+copy -d temp/ > /dev/null
cat temp/classes.dex | head -c 92 | tail -c 4 | hexdump -e '1/4 "%d\n"'
rm -R temp > /dev/null
}
@JakeWharton
JakeWharton / .bash_profile
Created August 7, 2014 05:49
Merge all your branches into a hacking branch.
function hackhackhack() {
# Merge all your local branches into a hacking branch.
PREFIX="$(whoami)/"
git co master
git branch -D "${PREFIX}hackhackhack"
git pull --prune
git co -b "${PREFIX}hackhackhack"
for branch in $(git branch | \grep "$PREFIX"); do
git merge --no-edit $branch
done
@CarlosMChica
CarlosMChica / ActionBarBackgroundWorkaround.java
Last active August 29, 2015 14:06
Workaround to change action bar background dynamically
//Looks like drawable is still not ready to be set when applying it to the action bar
//in versions bellow 17 with default method. The action bar needs to be redrawed and it can be forced by using
//the following workarround
public void setActionBarbackground(ColorDrawable colorDrawable) {
ActionBar actionBar = getActionBar();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
actionBar.setBackgroundDrawable(colorDrawable);
//switch true/false values if title is not needed
actionBar.setDisplayShowTitleEnabled(false);
@JcMinarro
JcMinarro / fragment_films.xml
Created October 19, 2014 10:32
SwipeRefreshLayout Example
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
tools:context="com.jcminarro.android.tools.views.fragments.FilmsFragment">
<android.support.v4.widget.SwipeRefreshLayout
@eveliotc
eveliotc / android-select-device
Last active February 5, 2019 06:10
My (android) dev aliases and scripts
#! /bin/bash
# from http://dtmilano.blogspot.com/2012/03/selecting-adb-device.html
# selects an android device
PROGNAME=$(basename $0)
UNAME=$(uname)
DEVICE_OPT=
for opt in "$@"
do
case "$opt" in
@rocboronat
rocboronat / RippleDelayedRunner.java
Last active November 29, 2020 12:42
A simple way to call the common new Handler().postDelayed(..., time);
package com.fewlaps.android.quitnow.base.customview;
import android.os.Handler;
import android.view.View;
/**A simple way to call the common new Handler().postDelayed(..., time);
*
* Created by Roc Boronat on 12/12/2014.
*/
public class RippleDelayedRunner implements View.OnClickListener {
@Sefford
Sefford / Debouncer
Last active August 29, 2015 14:14
Debouncer class will allow to avoid fast clicking into views
import android.support.v4.util.LongSparseArray;
import javax.inject.Inject;
/**
* Debouncer class will allow to avoid fast clicking into views
*
* @author Saul Diaz
*/
public class Debouncer {
@Sloy
Sloy / build.gradle
Last active August 29, 2015 14:15
Dex Count Gradle
buildscript {
repositories {
jcenter()
maven { url 'http://dl.bintray.com/sloy/maven'} //<- only needed while jcenter refresh to the new version
}
dependencies {
classpath 'com.sloydev:dexcountprettify-plugin:0.1.2'
}
}
@Sloy
Sloy / MockParcel.java
Created February 26, 2015 12:50
MockParcel for testing Parcelables implementations with the new Android's Unit testing support (http://tools.android.com/tech-docs/unit-testing-support). Only String and Long read/write implemented here. Add mock methods for other types.
import android.os.Parcel;
import java.util.ArrayList;
import java.util.List;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doAnswer;
@JakeWharton
JakeWharton / build.gradle
Created March 29, 2015 06:34
A Gradle task for installing all application variants at once. Placed in the public domain.
def installAll = tasks.create('installAll')
installAll.description = 'Install all applications.'
android.applicationVariants.all { variant ->
installAll.dependsOn(variant.install)
// Ensure we end up in the same group as the other install tasks.
installAll.group = variant.install.group
}