顯示具有 Android 標籤的文章。 顯示所有文章
顯示具有 Android 標籤的文章。 顯示所有文章

2016年12月11日 星期日

[Android] 改設定以免 Android Studio 吃 C槽 系統硬碟空間


1.
C:\Program Files\Android Studio\bin\idea.propertis

idea.config.path
idea.system.path

2.
環境變數
Variable name: ANDROID_SDK_HOME
Variable value: D:\Android



3.


gradle-setting.jpg


參考這篇但改變順序
以免重工
http://www.littlecpu.com/android-studio-c-drive




2016年11月24日 星期四

[Android][AWS] How to iterate all AWS S3 bucket access right 如何列舉 AWS S3 的所有 bucket

             




                AWSCredentials creden = new BasicAWSCredentials("AKIAIIZCDEMXYJP5G3RA", "oBy8PZKgxAMKxw9sEhmvjfZ0seHNvE2SBLgyWN8i");
                AmazonS3Client s3Client = new AmazonS3Client(creden);
                List<Bucket> buckets = s3Client.listBuckets();
                for (Bucket bucket : buckets) {
//                    Log.d("charles", bucket.getName());
                    try {
                        ListObjectsRequest lor = new ListObjectsRequest()
                                .withBucketName(bucket.getName());
                        ObjectListing objectListing = s3Client.listObjects(lor);
                        for (S3ObjectSummary summary: objectListing.getObjectSummaries()) {
//                            Log.d("charles", summary.getKey());
                        }
                        Log.d("charles", bucket.getName() + " :  granted");
                    } catch (AmazonS3Exception e) {
                        Log.d("charles", bucket.getName() + " :  AccessDenied");
                    }
                }

[Android][AWS] How to iterate all AWS S3 bucket access right 如何列舉 AWS S3 的所有 bucket

             

                AWSCredentials creden = new BasicAWSCredentials("AKIAIIZCDEMXYJP5G3RA", "oBy8PZKgxAMKxw9sEhmvjfZ0seHNvE2SBLgyWN8i");
                AmazonS3Client s3Client = new AmazonS3Client(creden);
                List<Bucket> buckets = s3Client.listBuckets();
                for (Bucket bucket : buckets) {
//                    Log.d("charles", bucket.getName());
                    try {
                        ListObjectsRequest lor = new ListObjectsRequest()
                                .withBucketName(bucket.getName());
                        ObjectListing objectListing = s3Client.listObjects(lor);
                        for (S3ObjectSummary summary: objectListing.getObjectSummaries()) {
//                            Log.d("charles", summary.getKey());
                        }
                        Log.d("charles", bucket.getName() + " :  granted");
                    } catch (AmazonS3Exception e) {
                        Log.d("charles", bucket.getName() + " :  AccessDenied");
                    }
                }

2016年11月22日 星期二

[Android][AWS] How to connent to AWS S3 get data


get Keys form AWS S3

AmazonS3 s3 = new AmazonS3Client(CRED);
ListObjectsRequest lor = new ListObjectsRequest()
                             .withBucketName("myBucket")
                             .withPrefix("code/");
ObjectListing objectListing = s3.listObjects(lor);
for (S3ObjectSummary summary: objectListing.getObjectSummaries()) {
    System.out.println(summary.getKey());
}


 AWSCredentials creden=new BasicAWSCredentials(accessKey,secretKey);
    AmazonS3Client s3Client=new AmazonS3Client(creden);
S3Object object = s3Client.getObject(new GetObjectRequest(
                "BucketName", "keyName"));

        BufferedReader reader = new BufferedReader(new InputStreamReader(
                object.getObjectContent()));
        Writer writer = new OutputStreamWriter(new FileOutputStream(file));

        while (true) {
            String line = reader.readLine();
            if (line == null)
                break;
            writer.write(line + "\n");
        }
    writer.flush();
    writer.close();
    reader.close();



http://stackoverflow.com/questions/17561432/amazon-s3-listing-directories

2016年3月10日 星期四

[Android] 反組譯 APK resource 檔案


http://ibotpeaches.github.io/Apktool/




1.) Put apktool.jar and test.apk in same folder 
2.) Go to the jar and .apk path by command line
3.) And fire the command java -jar apktool.jar d test.apk
4.) It will generate a folder with the name "test" in the same folder




2016年2月24日 星期三

[Android] 從log 查 EXCLUDE_FROM_RECENTS 的小技巧




01-01 00:47:09.000  1432  6076 I ActivityManager: START u0 {flg=0x10000000 cmp=com.oneplus.market/.activity.SearchActivity} from uid 10011 on display 0



FLAG_EXCLUDE_FROM_RECENTS  
excludeFromRecents
Constant Value: 32 (0x00000020)

2016年1月15日 星期五

[Android] download commit message for repo

這是為了把上 code 的 format 弄下來
以方便單獨的 repo project 使用

scp -p -P 29418 <your username>@<your Gerrit review server>:hooks/commit-msg <local path to your git>/.git/hooks/


出處:
https://git.eclipse.org/r/Documentation/cmd-hook-commit-msg.html

2015年12月28日 星期一

[Android] 產生超大檔進行硬碟塞滿測試


dd if=/dev/zero of=test00.tmp bs=1m count=20480

用這個指令把 sdcard 塞滿 可方便做實驗
不過實測 android 單檔最大只到 7.85 GB (8,435,793,920.00 位元組)
要產生兩次

2015年12月23日 星期三

[Android] 關掉虛擬鍵

開啟在system資料夾底下的build.prop檔

在最後一行加入後面這個指令qemu.hw.mainkeys=1

儲存後重開機,底下的三個虛擬按鍵就不見了

youtube有完整影片,照著做就ok了

https://www.youtube.com/watch?v=wt0x3kQR2cc

2015年11月27日 星期五

[Android] 如何设置xml中的product的读取值

与sd卡相关的字符串都有两个 只区分product属性,
    <bool name="config_externalStorageRemovable" product="nosdcard">false</bool>
    <bool name="config_externalStorageRemovable" product="default">true</bool>

ubuntu下用命令  grep -rl nosdcard android_sourcecode/*
搜索到 在device文件夹下有几个device.mk
里面有一段
PRODUCT_CHARACTERISTICS:=nosdcard
将nosdcard改为default

2015年11月19日 星期四

[Android] 拔掉 SD 卡的 intent 發送流程

1.  直接拔掉 sdcard













2.  再次将 sdcard 插入卡槽










3.  在通知栏卸载 sdcard








紧接着,从卡槽拔出 sdcard(必须拔出,才会接收到下面的 action)









出處還有更多內容 ,以上為 debug 較常用的


出處
http://blog.csdn.net/veryitman/article/details/7603428

2015年11月4日 星期三

[Android] 讓動畫可以長出去外面android:clipChildren

之前有幾次專案的經驗
常常有需要把畫面畫出去 view 的邊界的 case
這時候把
android:clipChildren 設 false 就好了
預設是 true 會限制 child view 無法畫超過  parent


下面是例圖:

2015年10月19日 星期一

[Android] repo sync 的小工具

repo sync 常常會不正常斷線,這個 script 可以不斷自動重試



#!/bin/bash 
while true
do
    if repo sync
      then
       echo "repo sync successfully."
      break
    else
       echo "repo sync failed. retry..."
       repo sync
    fi
done

[Android][SystemUI] 改變狀態欄電池狀態的幾種方法

1. 使用 demo mode


https://github.com/android/platform_frameworks_base/blob/marshmallow-release/packages/SystemUI/docs/demo_mode.md

adb shell settings put global sysui_demo_allowed 1
adb shell am broadcast -a com.android.systemui.demo -e command battery -e level 0 -e plugged false


2. 發 battery change,但是很容易被改掉

adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei level 9

3. 直接改 driver ,利用 存取節點,這個方法的好處是,連系統狀態都會猶如低電量

echo 10 > /sys/class/power_supply/battery/capacity

2015年10月1日 星期四

[Android] 如何在中國手機裝 GMS (Google mobile services)

以 Android L 手機為例子

1. adb push com.google.android.maps.jar system/framework/
2. adb push com.google.android.maps.xml system/etc/permissions/
3. adb shell
cd system/priv-app/
mkdir  GoogleServicesFramework
adb push GoogleServicesFramework.apk system/priv-app/GoogleServicesFramework/
4. adb shell
cd system/priv-app/
mkdir GooglePlay
(Google Play app) adb push Vending.apk system/priv-app/GooglePlay/Vending.apk
5. (Google Play Service) adb install com.google.android.gms-8.1.15_(2250156-846)-8115846-minAPI19
6. adb install GoogleCalendarSyncAdapter
7. adb install GoogleContactsSyncAdapter

這樣就有 Google 的軟體服務可以用了