dp مخفف density-independent pixels و sp مخفف scale-independent pixel است. همانطور که در این جواب گفته شده است بهتر است از sp بجای px برای مقدار دهی اندازه ها در برنامه نویسی اندروید استفاده کرد که باعث می شود اندازه ها بر اساس میزان چگالی صفحه نمایش کوچک یا برزگ شود. sp نیز مثل dp است (مستقل از پیکسل است) ولی بر اساس سایز متن کاربر تغییر می کند بنابراین باید از dp برای تعریف مقدار فاصله بین کامپوننت ها استفاده کرد:
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clickme"
android:layout_marginTop="20dp" />
و از sp برای مقداردهی سایز متن ها:
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp" />