파일 : https://www.dropbox.com/sh/67lw02ertmnfpnx/AAARocelPBBN9JVO4KjsPGVca?dl=0

갤럭시 그랜드 독도룸 올리기~

검색해봐도 풀가이드가 없어 간단하게 정리해 봅니다. 참고용으로만 봐주세요. 저도 전문적인 지식이 없습니다.

//주의// 백업없이 진행 한다면 폰이 벽돌이 될 수도 있고 imei가 날아갈 수도 있습니다. 그리고 정식 as를 받지 못할 수 있습니다.

  (저는 백업없이 그냥 진행)

1. 삼성 usb통합드라이버 설치 (검색해서 설치하시면 됩니다)

2. 리커버리 설치 

Odin3_v3.12.5.zip 압축해제 후 Odin3 v3.12.5.exe 실행하면 창이 하나 나옵니다.

usb드라이버가 제대로 설치돼있고 usb를 이용해 폰과 컴퓨터를 연결하면 좌측 하단에 <ID:0/004> Added!! 라는

메시지가 나옵니다. 이러면 제대로 준비가 된 것입니다.

폰 전원을 끄고 볼륨하 + 전원 + 홈키를 5초정도 누르고 있으면 다운로드 모드가 나옵니다. 볼륨 상 키를 눌러서 진입합니다.

오딘 프로그램 우측 중간쯤에 ap를 누릅니다. GalaxyGrand_dokcovery.tar 파일을 선택합니다.

start를 눌러주면 설치완료 후 재부팅이 됩니다.

3.핸드폰 저장소에 파일 4개 넣기. usb와 컴퓨터가 연결되있고 핸드폰이 켜져있다면 핸드폰 저장소에 들어갈 수 있습니다.

처음 진입하는 디렉토리에 

dokdo_gapps_5.1.X

update_wifi_e250x

dokdo-7.3.0-OFFICIAL-baffinltektt

UPDATE-SuperSU-v2.82-20170528234214

를 복사해주세요.

4. 루팅하기

핸드폰 전원을 끈 후 핸드폰 전원+볼륨상+홈키 를 5초정도 누르고 있으면 리커버리에 진입합니다. 

리커버리에서 이동은 핸드폰의 볼륨키로, 확인은 핸드폰의 전원키로 하시면 됩니다.

apply update -> choose from internal storage에 가면 아까 넣은 파일을 찾을 수 있습니다. (없다면 경로를 조금 탐색 해보세요)

핸드폰 저장소에 파일 넣은 곳을 찾아야합니다.

UPDATE-SuperSU-v2.82-20170528234214.zip 파일을 찾아 실행하세요.

설치가 됐다면 메뉴로 나와 reboot을 합니다.

루팅이 제대로 됐다면 폰 부팅 후 앱목록을 보시면 supersu앱이 설치된걸 확인할 수 있습니다.

5.독도룸 설치

이제 다시 전원을 끄고 리커버리에 진입합니다.

wipe data/factory reset

wipe cache partition

차례로 실행하시고 

apply update -> choose from internal storage에서

dokdo-7.3.0-OFFICIAL-baffinltektt -> dokdo_gapps_5.1.X 을 차례로 설치하시고 바깥 메뉴로 나와 

reboot system now를 누르시면 됩니다.

이제 독도 부팅화면이 뜰겁니다~ 

6. 와이파이 고치기

만약 와이파이가 안되면 같은 방법으로 리커버리에 진입해서 update_wifi_e250x를 설치하시면 됩니다.


끝~~ 

그림도 없지만 그냥 기록+ 필요한 분 있을까바 올려봅니다. ㅎㅎ

------------------------------

후기, 확실히 순정보다 빠르네요. 하지만 가끔 재부팅이 되네요. 



자주 쓰는 찾아가는 기능을 2가지 소개할께요


1. 인스턴스 이름에서 Ctrl + B  또는 F4 를 누르면 루트로 찾아갑니다.

2.XML파일에서 Ctrl + B 역시 파일을 띄워 줍니다.

R.layout.activity_alarm_row2

 다른 파일로 전환 후엔 Ctrl + tab(탭 전환) 으로 처음 파일로 돌아가면 편해요.





소스창 빈칸에 우클릭 -> GOTO 에 있는 기능들입니다~

개인적으로 많이 사용하는 단축키라서 소개해봤습니다. 


안스에 왜 지금까지 몰랐을까 싶을 정도로 편한 기능이 있네요.


Navigation Between Bookmarks

FunctionShortcutUse this shortcut to...
Go to Bookmark <number>Ctrl+NumberNavigate to a numbered bookmark with the corresponding number.
Toggle BookmarkF11Turn anonymous bookmark on or off.
Toggle Bookmark with MnemonicCtrl+F11Turn bookmark with mnemonic on or off.
Show BookmarksShift+F11Open Bookmarks dialog to manage existing bookmarks and navigate between them.

 

북마크 기능입니다.

라인을 기억합니다. 일단 소스코드에 아무때나 갑니다.

F11은 이름없이 설정. Ctrl + F11은 알파뱃이나 숫자로 설정.   왼쪽에 마크가 생기죠~~

위 표의 첫번째 Go to Bookmark 는  Ctrl+ F11(숫자키로  지정)시 이동할 수 있습니다. 

개인적으로 이 기능이 제일 편하네요. 


추가된 북마크를 관리할 때는

  1.  SHFIT + F11 
  2.  ALT + 2

둘중 하나를 쓰시면 됩니다.


(ALT + 2 -> 북마크 -> ALT+DELETE 로 북마크 지울 수 있습니다)


ALT + 2 눌리면 FAVOLITE 기능도 있는데요. 파일을 기억하는 것입니다.    

해당 파일을 끌어 땡겨서 넣으시면 됩니다.


이제 틈틈이 젯브레인에 가서 업데이트나 설명좀 읽어봐야겠네요.

오늘 마우스를 놔두고 가서 트랙패드로 안스를 만졌는데, 이거 알았으면 편했겠네요. 헤헤


출처:

https://www.jetbrains.com/idea/help/navigation-between-bookmarks.html?search=bookmarks


안드로이드, node.js 간의 소켓통신에 쓰이는 모듈입니다.


하지만..... 문제가 좀 있습니다.


socket.disconnect(); 


메모리폭주..


검색을 해보니 해결법이 있네요~!!

websocket1.3.0을 추가해서 jar파일을 rebuild 해야합니다.


jar 실행하기 -> http://www.wikihow.com/Create-JAR-File 설명이 잘 돼있어요



짜잔...

rebuild한 파일 

mySocketIo.jar



참고

https://github.com/Gottox/socket.io-java-client/issues/52

https://github.com/TooTallNate/Java-WebSocket

https://github.com/Gottox/socket.io-java-client/issues/4

리스트뷰의 row에 이미지뷰를 설정하고, 펼쳐질 때, 닫힐 때마다 그림을 설정하는 소스.


i use fragments.


1.frag04.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ExpandableListView
android:id="@+id/exp_list"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:groupIndicator="@null">

</ExpandableListView>
</RelativeLayout>

frist, in order to hide for orginal arrow, add android:groupIndicator="@null" 


2.parent_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/rank"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:textSize="20dp"
android:paddingBottom="3dp"
android:gravity="center_horizontal"
/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="29dp"
android:textColor="#ffff8f19" />
<TextView
android:id="@+id/공갈"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/age"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:textSize="10dp"
android:textColor="#33000000"/>
<TextView
android:text = " "
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10dp"
android:paddingRight="10dp"
android:textColor="#33000000"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/flag"
android:scaleType="fitXY"
android:layout_width="85dp"
android:layout_height="70dp"
android:paddingLeft="30dp"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="7dp"
android:paddingLeft="10dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/team"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:paddingLeft="15dp"
android:textSize="10dp"
android:textColor="#33000000" />
</LinearLayout>
<TextView
android:id="@+id/position"
android:textSize="18dp"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text=""
android:textSize="18dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
/>
<TextView
android:id="@+id/goal"
android:textSize="18dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:text="어시 "
android:textSize="18dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
/>
<TextView
android:id="@+id/assist"
android:textSize="18dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:text="패스 "
android:textSize="18dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
/>
<TextView
android:id="@+id/ps"
android:textSize="18dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:text="블럭 "
android:textSize="18dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
/>
<TextView
android:id="@+id/block"
android:textSize="18dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/공갈레이아웃"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/arrow"
android:src="@drawable/arrowdown"
android:scaleType="fitXY"
android:layout_width="30dp"
android:layout_height="30dp"/>
</LinearLayout>


</LinearLayout>

add the ImageView instead of original arrow 

<ImageView
android:id="@+id/arrow"
android:src="@drawable/arrowdown"
android:scaleType="fitXY"
android:layout_width="30dp"
android:layout_height="30dp"/>


and add the two image in drawable folder (arrowdown, arrowup)

3.ExpandListAdapter

package expandablelistview.volley.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.android.volley.toolbox.ImageLoader;

import org.androidtown.actionbar.R;

import java.util.ArrayList;

import expandablelistview.volley.app.MyApplication;
import expandablelistview.volley.model.Child;
import expandablelistview.volley.model.Group;

/**
* Created by park on 2015-06-02.
*/
public class ExpandListAdapter extends BaseExpandableListAdapter {

private Context context;
private ArrayList<Group> groups;
private ImageView arrow;

ImageLoader imageLoader = MyApplication.getInstance().getImageLoader();

public ExpandListAdapter(Context context, ArrayList<Group> groups) {
this.context = context;
this.groups = groups;
}

@Override
public Object getChild(int groupPosition, int childPosition) {
ArrayList<Child> chList = groups.get(groupPosition).getItems();
return chList.get(childPosition);
}

@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}

@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {

Child child = (Child) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.child_item, null);
}

if (imageLoader == null)
imageLoader = MyApplication.getInstance().getImageLoader();

TextView tv = (TextView) convertView.findViewById(R.id.country_name);
ImageView iv =(ImageView) convertView.findViewById(R.id.flag2);

tv.setText(child.getName().toString());
iv.setImageResource(child.getImage());

return convertView;
}

@Override
public int getChildrenCount(int groupPosition) {
ArrayList<Child> chList = groups.get(groupPosition).getItems();
return chList.size();
}

@Override
public Object getGroup(int groupPosition) {
return groups.get(groupPosition);
}

@Override
public int getGroupCount() {
return groups.size();
}

@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}

@Override
public View getGroupView(final int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
Group group = (Group) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater inf = (LayoutInflater) context
.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = inf.inflate(R.layout.parent_item, null);
}
arrow= (ImageView)convertView.findViewById(R.id.arrow);

if (isExpanded) {
arrow.setImageResource(R.drawable.arrowup);
}
else {
arrow.setImageResource(R.drawable.arrowdown);
}

TextView rank = (TextView) convertView.findViewById(R.id.rank);
TextView name = (TextView) convertView.findViewById(R.id.name);

ImageView flag = (ImageView) convertView.findViewById(R.id.flag);
TextView age = (TextView) convertView.findViewById(R.id.age);

TextView team = (TextView) convertView.findViewById(R.id.team);
TextView position = (TextView) convertView.findViewById(R.id.position);

TextView goal = (TextView) convertView.findViewById(R.id.goal);
TextView assist = (TextView) convertView.findViewById(R.id.assist);
TextView ps = (TextView) convertView.findViewById(R.id.ps);
TextView block = (TextView) convertView.findViewById(R.id.block);


rank.setText(group.getRank());
name.setText(group.getName());

flag.setImageResource(group.getFlag());
age.setText(group.getAge());

team.setText(group.getTeam());
position.setText(group.getPosition());

goal.setText(group.getGoal());
assist.setText(group.getAssist());
ps.setText(group.getPs());
block.setText(group.getBlock());

return convertView;
}

@Override
public boolean hasStableIds() {
return true;
}

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}

}

in public View getGroupView 

add the line

arrow= (ImageView)convertView.findViewById(R.id.arrow);
if (isExpanded) {
arrow.setImageResource(R.drawable.arrowup);
}
else {
arrow.setImageResource(R.drawable.arrowdown);
}

4.finish


+ Recent posts